gpt4 book ai didi

java - 从 52964 字节处停止的套接字读取所有字节

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:03 25 4
gpt4 key购买 nike

我正在制作一个服务器,它可以获取 64 kb 大小的包。

        int length = 65536;
byte[] bytes = new byte[length];

int pos = 0;
while(pos < length -1)
{
System.out.println("Before read");
pos += dis.read(bytes, pos, length-pos);
System.out.println(""+pos+" >> "+ length);
}

这是我用来从套接字读取所有字节的代码。 Dis 是一个 InputStream。当我运行代码时,n 中有 1 个出错。该代码仅接收 52964 字节而不是 65536 字节。

我还检查了 C 代码,它说它发送 65536 字节。

有人知道我做错了什么吗?

最佳答案

这是另一个案例 Jakarta Commons IOUtils是比自己编写更好的选择。这是一行代码,并且已经过全面测试。在这种情况下,我推荐 IOUtils.readFully()

如果它没有读取整个缓冲区,那么您就知道您没有发送所有内容。也许您在服务器端缺少刷新。

关于java - 从 52964 字节处停止的套接字读取所有字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com