服务器给我发送返回数据,大小大概在20kb(小b,位),我接收的长度却只有2872b,多的时候可以达到7180了,最少的时候是1436,(这些数字都是1436的倍数). 读取时间,我都设置为-1,也就是最大值... 返回的长度最常见就是2872了...
请问各路大侠,有没有遇到此种情况,或者您觉得可能的原因在哪?

解决方案 »

  1.   

    发的包的长度可能固定,但收到的包长度会时大时小。
    这个长度不是自已控制的,这是tcp传输时底层做的工作。发送的数据存到缓冲中,当网络整度慢的时候,两个包会粘接在一起一起发送。这在tcp传输数据时常见到的现像。。
      

  2.   

    嗯,我找了很久,才发现,真的是这样的。比如原来的数据是AAAAAA,现在分成两个包了,两个包里面的数据加一起,长度超过了原包的长度,多出来的长度是什么?不会是相应的格式吧,比如目标IP,端口之类的吧? 还是包序列?
      

  3.   

    如用载包工具看到的数据多是因为那是一部分tcp封包的协议头tcp自动加的包头!
      

  4.   

    比如原来的数据是AAAAAA,现在分成两个包了,两个包里面的数据加一起,长度超过了原包的长度。胡说八道。如果服务器发了AAAAAA,接着发BBBBBB,你收到的可能是AAAAAA,再收到BBBBBB,或者一次性收到AAAAAABBBBBBB。没有其他情况。别什么抓包分析什么XX。学点基础比较好
      

  5.   

    服务器只发送了一次AAAAAABBBBBBB,而我这边是多次接收,而且总长度比服务器发送的长度还多出几个字节,我不知道多出的这几个字节是怎么回事.....