这是我的简化代码
sock.getOutputStream().write(buff); //send a readRequest
byte[] rbuff = new byte[19210]; //Answer has 19210 bytes of data
sock.getInputStream().read(rbuff);
在 wireshark 中,我看到它被分成几个 tcp 包。 但是读取不应该等到 19210 字节到达了吗?
我得到了数据,但是从某个位置开始,所有字节都是 0。这基本上是相同的位置,但有点不同。
知道我在这里做错了什么吗?
最佳答案
你可以尝试像这样分 block 阅读:
ByteArrayOutputStream b= new ByteArrayOutputStream();
byte[] buf = new byte[1024];
while (count = in.read(buf)) > 0)
{
b.write(buf,0,n);
}
byte data[] = b.toByteArray();
关于java - 从 java socket(TCP) 读取 19000 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797089/