我正在使用服务器和客户端,其中服务器发送一个内部未知数量的字符串的字符串。 例如:
foo1 \n foo2 \n foo3
或
foo1 \n foo2
在客户端上,由于套接字的阻塞特性,我无法尝试/捕获nextLine(),我需要一种方法来查找在创建块之前有多少客户端。我想避免更换服务器,有什么我可以做客户端的吗?
我已经尝试过hasNext(),hasNextLine()但是在返回结果之前它们似乎也阻塞了
其他类似标题的问题:
Scanner.nextLine() blocks when using InputStream from Socket
答案 0 :(得分:1)
一种方法是在发送邮件之前发送总字节数或字符来读取,然后在另一方面,首先读取总字节数/字符数阅读而不阻止,然后您阅读邮件的内容。
换句话说,您可以实施一个简单的协议来发送和阅读您的邮件,而不是仅仅依赖于行尾字符,因为您显然无法做到这一点。