【发布时间】:2024-01-18 09:33:01
【问题描述】:
我正在通过
发送数据data.writeInt()
其中 Data 是一个 DataOutput,它有一个套接字的输出流。
在另一端,我有一个套接字的 InputStream 和一个 DataInput,我读取的是
data.readInt()
我已经确认每次写入都与适当的读取相匹配。然后我用wireshark查看包,一切都在那里。
但是,当我发送 17 时,我得到了 1114112。这移动了 2 个字节,所以我有可能在某处丢失两个字节吗?
我做了一些添加flush()的实验,但问题仍然存在。此外,我还没有(还)设法编写一个显示问题的较小示例(这就是为什么我不在这里包含代码的原因)。然而,大例子是稳定的,它每次都发生在同一个位置。
使用不同的数据,我在 17 之后得到 285212672(应该是 0)。这看起来像 17 的最后一个字节被读取了两次。
任何想法这可能是什么或建议如何调试它?
亚历克斯
【问题讨论】:
-
你能包含一个 MCVE 吗? (*.com/help/mcve)
标签: java sockets tcp datainputstream