我在两台计算机之间有持久的 TCP 连接(第二台计算机不受我的控制)。第二台计算机可以随时发送FIN标志,并且首先必须关闭当前连接(将FIN标志发送回第二台计算机)。
我如何知道第二台计算机正在发送 FIN 标志,以及何时必须调用 Java 应用程序的 socket.close() 方法?
通常,您必须读取连接,当 EOF 返回 -1 或相应的 IOException 时,您可以关闭连接。注意:SocketTimeoutException并不意味着连接已关闭。
一个例子。
boolean ok = false;
try {
int b = in.read();
ok = b >= 0;
if (!ok)
throw new EOFException();
} finally {
if (!ok)
in.close();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)