Java套接字:客户端如何确定套接字是否已断开连接?

时间:2020-06-27 04:17:43

标签: java sockets

如果我关闭服务器套接字,客户端如何知道套接字已断开连接? 例如,请查看此image,其中在套接字断开连接时答复为null。

1 个答案:

答案 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块。例如,我在那里决定关闭客户端。您可以将其更改为您想做的任何事情。

如果没有最少的可重复工作代码,很难发表进一步的评论。