Java nextLine 在套接字上阻塞
Java nextLine blocked on socket
我正在使用一个服务器和一个客户端,其中服务器发送一个字符串,其中包含未知数量的 \n。
例如:
foo1 \n foo2 \n foo3
或
foo1 \n foo2
在客户端,由于套接字的阻塞特性,我不能try/catch nextLine(),我需要一种方法来找出在一个块是制作。我想避免更改服务器,我可以在客户端做些什么吗?
我试过 hasNext()、hasNextLine(),但它们似乎在返回结果之前也阻塞了
其他标题相似的问题:
Scanner.nextLine() blocks when using InputStream from Socket
When Does Scanner.nextLine() block?
一种方法是发送字节或字符的总量,在发送消息之前,然后在另一边,你先阅读无阻塞阅读的总量bytes/characters,那么你就阅读了邮件的内容。
换句话说,您可以实现一个简单的协议来发送和阅读您的消息,而不是仅仅依赖于行尾字符,因为在您的情况下显然不能。
我正在使用一个服务器和一个客户端,其中服务器发送一个字符串,其中包含未知数量的 \n。 例如:
foo1 \n foo2 \n foo3
或
foo1 \n foo2
在客户端,由于套接字的阻塞特性,我不能try/catch nextLine(),我需要一种方法来找出在一个块是制作。我想避免更改服务器,我可以在客户端做些什么吗?
我试过 hasNext()、hasNextLine(),但它们似乎在返回结果之前也阻塞了
其他标题相似的问题:
Scanner.nextLine() blocks when using InputStream from Socket
When Does Scanner.nextLine() block?
一种方法是发送字节或字符的总量,在发送消息之前,然后在另一边,你先阅读无阻塞阅读的总量bytes/characters,那么你就阅读了邮件的内容。
换句话说,您可以实现一个简单的协议来发送和阅读您的消息,而不是仅仅依赖于行尾字符,因为在您的情况下显然不能。