我写了一个小的服务器/客户端应用程序。这是代码
try
{
OutputStream os = clientSocket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
System.out.println("clientsocketstatus connected: " + clientSocket.isConnected());
System.out.println("clientsocketstatus closed: " + clientSocket.isClosed());
oos.writeObject(keepAliveNW);
}
catch(Exception e)
{
e.printstacktrace();
}
现在,当我在 Windows 中禁用 NIC 并重新启用 netstat 时,显示我的 PC1 和 PC2 之间没有打开的连接。现在,当我的客户端尝试发送 keepAliveNW 对象时,应该有一个异常,但没有。我连线了。服务器上没有数据到达。我还在客户端上使用了 Wireshark。Keep-Alive 数据包已发送,但从来没有任何 TCP ACK 数据包,因此 Java 应该检测到出现问题。当连接完全建立时,在 keep-Alive Paket 之后会有一个 TCP ACK Paket。那么如何检测到连接已断开?
感谢帮助。