当客户端退出聊天程序时,“null”无限打印

时间:2016-05-05 21:31:35

标签: java

当两个(或更多)客户端连接到服务器时,当我按其中一个客户端的logout时,他成功断开连接。但是,其他客户端无限制地在其文本区域上打印"null",因此它会一直打印"null"而不会停止。

  public void run(){
        if (socket != null && reader != null) {
            try {
                String in;
                while (keepGoing){
                    try{
                        in= reader.readLine();
                        send(in+"\n");  
                    }
                }
            }
        }
    }

注意:这不是错误,而是一个错误,所以我没有任何例外。

2 个答案:

答案 0 :(得分:2)

执行以下操作:

while (messageLoop){
    try{
        messageInput = reader.readLine();

        if(messageInput == null) break;

        sendMessage(messageInput+"\n");  

    }
    catch(SocketTimeoutException ste){
        Thread.yield();
    }
}

答案 1 :(得分:0)

这是因为即使没有什么可读的,你也会无限地阅读读者。您可以执行以下操作来更正代码:

D2D1_COLOR_F