gpt4 book ai didi

Java bufferedReader readline循环不会中断

转载 作者:行者123 更新时间:2023-11-30 02:18:57 25 4
gpt4 key购买 nike

在我的java代码中,我通过套接字将字符串发送到另一个流。

发件人代码:

OutputStream out = socket.getOutputStream();
String u = new String("something as text");
PrintWriter p = new PrintWriter(out);
p.print(resultMessage);
p.flush();
p.print("\0");
p.flush();

接收者代码:

String s;
while ((s = br.readLine()) != null ) {
System.out.println(s);
}
System.out.println("DONE");

问题是,在打印收到的数据后,while 循环不会停止,并且会存储在 while ((s = br.readLine()) != null ) 中。所以它不会打印 Done

最佳答案

如果不关闭连接,就不会出现end-of-stream另一端将永远等待(除非配置了读取超时)。

如果您已发送完所需的所有数据,请关闭套接字。否则接收端将等待您可能发送的任何其他数据。

正在发送NUL ( \0 ) 没有做任何特别的事情,它绝对不会导致 null正在阅读者 readLine() .

如果您想继续来回发送数据,中间发生一些事情,您需要想出一个要使用的协议(protocol)(即发送什么类型的消息以及何时发送),并从那里开始设计您的程序.

关于Java bufferedReader readline循环不会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47411580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com