Server/Client的Socket API介绍.
Server
ServerSocket server = new ServerSocket(9090); |
Client
/* 方式1 */ |
半关闭
- Socket.shutdownOutput():
- Socket.shutdownInput():
- boolean isOutputShutdown():
- boolean isInputShutdown():
Socket socket = new Socket(host, port); |
shutdownOutput 实际是发送了 FIN 报文给对方,意思是己方不再发送数据 [[../22.Network-Protocol/网络协议2-TCP#三次握手、四次挥手]]
可中断套接字
当连接到一个套接字时,当前线程将会被阻塞直到建立连接或产生超时为止。java.nio包提供的一个特性——SocketChannel类,与上面的Socket不同,SocketChannel是可以中断的
如果发生中断, 下面的操作不会阻塞, 而是抛出异常
SocketChannel channel = SocketChannel.open(); |
KeepAlive
参考: [[../22.Network-Protocol/网络协议2a-TCP的KeepAlive]]