如果我关闭服务器套接字,客户端如何知道套接字已断开连接? 例如,请查看此image,其中在套接字断开连接时答复为null。
答案 0 :(得分:0)
您可能在代码中的某个地方有一个实现Runnable
的类,它充当客户端代码中的传入消息读取器?可能是这样的:
public class IncomingReader implements Runnable{
public void run(){
String message;
try{
while ((message = reader.readLine()) != null){
System.out.println("read " + message);
incoming.append(message + "\n");
//incoming is the TextBox where messages are displayed, in this case
}
} catch(Exception ex){
ex.printStackTrace();
frame.dispose();
}
}
}
当套接字断开连接时,阅读消息时将引发异常,并且控制流将转移到catch
块。例如,我在那里决定关闭客户端。您可以将其更改为您想做的任何事情。
如果没有最少的可重复工作代码,很难发表进一步的评论。