gpt4 book ai didi

Java nextLine 在套接字上被阻塞

转载 作者:行者123 更新时间:2023-11-30 07:03:33 26 4
gpt4 key购买 nike

我正在使用服务器和客户端,其中服务器发送一个字符串,其中包含未知数量的\n。例如:

foo1 \n foo2 \n foo3

foo1 \n foo2

在客户端,由于套接字的阻塞性质,我无法尝试/捕获 nextLine(),并且我需要一种方法来找出在进行阻塞之前客户端有多少个\n 。我想避免更改服务器,我可以在客户端做些什么吗?

我尝试过 hasNext()、hasNextLine(),但它们似乎在返回结果之前也会阻塞

标题类似的其他问题:

Scanner.nextLine() blocks when using InputStream from Socket

When Does Scanner.nextLine() block?

最佳答案

一种方法可能是在发送消息之前发送要读取的字节或字符总数,然后在另一方面,您首先读取字节/字符总数阅读而不阻塞,然后您就可以阅读消息的内容。

换句话说,您可以实现一个简单的协议(protocol)来发送和读取消息,而不是仅依赖行尾字符,因为在您的情况下显然不能。

关于Java nextLine 在套接字上被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493640/

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