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