Open woshikid opened 2 years ago
客户端在调用socket.close()之后,将发送FIN
socket.close()
此时客户端调用read()或write(),都将报java.net.SocketException: Socket is closed 若服务端调用read(),将返回-1,调用write(),不会抛出异常,但客户端将发送RST
read()
write()
java.net.SocketException: Socket is closed
-1
连接被RST之后,服务端调用read()
java.net.SocketException: 你的主机中的软件中止了一个已建立的连接。
若服务端调用write()
java.net.SocketException: Broken pipe
客户端程序退出或kill之后
kill
如果没有收到FIN,直接收到RST 若服务端调用read(),将报java.net.SocketException: Connection reset 若服务端调用write(),将报java.net.SocketException: Connection reset by peer
java.net.SocketException: Connection reset
java.net.SocketException: Connection reset by peer
正常关闭
客户端在调用
socket.close()
之后,将发送FIN此时客户端调用
read()
或write()
,都将报java.net.SocketException: Socket is closed
若服务端调用read()
,将返回-1
,调用write()
,不会抛出异常,但客户端将发送RST连接被RST之后,服务端调用
read()
java.net.SocketException: 你的主机中的软件中止了一个已建立的连接。
-1
若服务端调用
write()
java.net.SocketException: 你的主机中的软件中止了一个已建立的连接。
java.net.SocketException: Broken pipe
异常断开
客户端程序退出或
kill
之后如果没有收到FIN,直接收到RST 若服务端调用
read()
,将报java.net.SocketException: Connection reset
若服务端调用write()
,将报java.net.SocketException: Connection reset by peer