为什么在读取用户输入的内容后套接字没有关闭?

时间:2012-12-19 14:25:12

标签: java multithreading sockets

我在聊天应用程序的服务器中使用了以下代码,我正在为每个客户端使用一个单独的线程。 的代码:

public void run()
{
String msg;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream())
BufferReader r= new BufferedReader(isReader);
int i=0,j=0;
System.out.print("entered run again"+i++);
try{
             while((msg=r.readLine())!=null)
    {
        System.out.println("readed"+msg );

            spreadMsg(msg);

    }


    }catch(Exception e){e.printStackTrace();}


 }


}   

为什么while循环“while((msg = r.readLine())!= null)”正在成为无限循环,为什么它在读完唯一的行后才返回?我进入了。

1 个答案:

答案 0 :(得分:0)

Socket.getInputStream()返回的流在客户端关闭套接字之前不会返回null。