笔者:
socket.setSendBufferSize(1);
socket.setTcpNoDelay(true);
writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));
使用如下:
try {
writer.write(packet.toXML());
writer.flush();
...
}
catch (Exception ioe){
if (!done) {
done = true;
...
}
}
这是客户端代码。当它的服务器断开套接字(也是java代码)时,为什么客户端只会在5-10分钟后抛出?它不应该在第一次尝试覆盖死连接时抛出吗?
谢谢
编辑:
关闭服务器后,以下是 TCP 状态:
tcp 0 0 server:443 client:50283 FIN_WAIT2
tcp4 0 0 cient.50283 server.443 CLOSE_WAIT
编辑2:
客户端是一个安卓应用程序。从电话跑出来,第二个写入的数据包导致抛出。从模拟器(Mac 下面)运行第四个 write() 将抛出。