我正在使用Java socket客户端。在服务器仍连接到我的客户端但没有响应我的消息的情况下,我最终会收到读取超时异常。
在这种情况下,我想测试一下是否应该重新连接我的socket或者只是保持它并重用它。
我使用以下条件:
在这种情况下,我想测试一下是否应该重新连接我的socket或者只是保持它并重用它。
我使用以下条件:
if (!socket.isConnected() || socket.isClosed() || !socket.isBound()) {
try {
socket.close();
} catch (IOException e1) {
}
// Wait on a new connection
socket = connectSocket(.....);
}
但我似乎总是重新连接。当我记录布尔属性的值时,我看到这个:
connected: true closed: true bound: true
如何同时连接和关闭呢?
TIA
isConnected()
和isClosed()
调用之间关闭了套接字?也许先在套接字对象上同步? - PowerlordisConnected()
和isClosed()
的检查顺序,那么测试起来就很容易。 - Erick Robertson