【发布时间】:2011-06-08 02:54:40
【问题描述】:
我正在使用 DataInputStream 从套接字读取一些字节。我有一个预期的要从流中读取的字节数(解码标头后,我知道消息中有多少字节)它在 99% 的时间内都可以工作,但有时我会读取的字节数小于 len。
int numRead = dis.read(buffer, 0, len);
什么可能导致 numRead 小于 len?这不是-1。我希望 read 的行为会阻塞,直到流关闭或达到 EOF,但如果它是流底层的套接字,除非套接字关闭,否则不应该发生这种情况,对吧?
有没有一种从套接字读取字节的方法可以始终确保您读取 len 个字节?
谢谢
【问题讨论】:
标签: java sockets inputstream datainputstream