【发布时间】:2015-05-14 07:54:31
【问题描述】:
来自(Java 网络编程第四版):
要判断套接字当前是否打开,您需要
检查isConnected() 是否返回真,isClosed() 是否返回假。举个例子:
boolean connected = socket.isConnected() && ! socket.isClosed();
我需要找到一种方法来尽快发现客户端已从服务器套接字断开连接。使用上述技巧,我尝试了以下方法:
Socket socket = ...;
while (socket.isConnected() && !socket.isClosed()) {
// do something ...
// here, the client is always connected
}
// client is disconnected
上述方法对我有用,但它总是正确的?它检测到所有情况?
【问题讨论】:
-
如果您在 while 循环中时与服务器断开连接会发生什么?
-
while ( !socket.isClosed() && socket.isConnected()) {不是更好