读取输入流时的无限循环



我想打印所有正在写入输入流的文本。在文本末尾,我希望循环终止,以便它可以接受更多的用户输入。由于某种原因,我的 while 循环永远不会终止,并且无限停止我的程序。如何编写 while 循环,以便在没有更多要打印的文本时终止?

public static void open() throws IOException {
    sock.connect(new InetSocketAddress(InetAddress.getByName(arg[1]), Integer.parseInt(arg[2])));
    InputStream stream = sock.getInputStream();
    BufferedReader buff = new BufferedReader(new InputStreamReader(stream));
    String output;
    while ((output = buff.readLine()) != null) {
        System.out.println(output);
    }
}    

对等方尚未关闭连接,因此循环永远不会终止。

问题出在哪里?如果我的代码没有错,则当您在套接字上没有收到数据时,while 循环将完成。

也许您的套接字总是有请求?

最新更新