【发布时间】:2011-10-31 04:17:35
【问题描述】:
我正在编写一个简单的客户端/服务器网络应用程序,它通过 TCP 套接字发送和接收固定大小消息。
到目前为止,我一直使用Socket类的getInputStream()和getOutputStream()方法来获取流,然后调用InputStream类的read(byte[] b, int off, int len)方法,每次读取60个字节(即消息的大小)。
后来,我阅读了该方法的 Javadoc:
公共 int 读取(字节 [] b, 关闭, 国际化) 抛出 IOException
从输入流中读取最多个字节的数据到一个数组中 字节。尝试读取多达 len 个字节,但更小 可以读取数字。实际读取的字节数返回为 一个整数。
我想知道是否有任何 Java“开箱即用”的解决方案可以阻止,直到读取 len 个字节,如有必要,永远等待。
我显然可以创建一个简单的循环,但我觉得我在重新发明轮子。你能给我推荐一个干净且支持 Java 的解决方案吗?
【问题讨论】:
标签: java inputstream