我发送的TCP数据包每个只有几位(一行文本左右)。我通过HTTP代理将它们发送到远程服务器但是由于某种原因,当与代理的连接缓慢或中断到服务器只到达数据包的一个片段而不是整个数据包时它会导致服务器端的异常,它是怎么回事有意义吗?客户端有什么方法可以防止发送数据包的片段而不是整个数据包?
示例:我正在尝试发送此数据包:
packetHead: id (1-99)
integer: 1
short: 0
byte: 4
在我的情况下,有时会发生这样的情况:服务器到达的只是packetHead和整数,当与代理的连接不好时,其余的数据包会丢失。
我无权修改服务器源代码,因此我需要在客户端修复它。
感谢您的任何提示。
答案 0 :(得分:1)
请说明您如何发送数据。每次我遇到类似的问题时,我都没有冲洗流。特别是如果流被压缩,则需要在GZIP或类似对象上关闭/完成以实际发送所有内容。