如果是使用TCP协议通信,由TCP协议是面向连接。所以当客户端关闭后,由于没有预先告诉服务要销毁连接,客户端关闭时(客户与服务异常断开)服务端就会出现异常(空流情况)。这些都是在意料之内的。
一般的处理方法
对networkStream 处理应该是放在try {}catch{}里当出现异常就销毁当前socket连接:
伪代码为
try{
networkStream.read();
}catch{
socket.close();
}
客户端强制断开链接后,线程继续发送消息会抛异常,因为socket已经断开。
服务器那边没有自动停止连接客户端
如果是客户端主动关闭,忽略即可。