开发者社区> 问答> 正文

socket通信,字节丢失问题

我现在在多台win7和xp的主机上进行java的socket通信,主机间的源代码是通过svn同步,肯定完全一样,现在问题是(以下测试的socket通信文件完全一样):两台xp主机间通信完全没有问题,xp往win7发送也没有问题
问题出在:当win7往xp发送数据时,就会丢字节,在xp上最多接收8755个字节(接收缓冲区足够大),这样该如何解决,有没有哪位也碰到过同样的问题?麻烦指点下.

展开
收起
蛮大人123 2016-02-18 14:27:29 3481 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    我只能大概描述下 新系统发XP的 数据包格式了
    IP包 20字节
    45 00 00 00 78 42 97 00 00 40 06 b4 cd ac 12 15 7d ac 12 15 79

            长度120个字节                         6TCP                     两个IP

    TCP包头 32字节
    1388 0442 7cbcb301 36df4b10 80 38 2000 7643 0050 0101080a 0000008d 0001042a
    端口 端口 32字节 flag 偏移80 12字节的options-padding
    然后就是80字节的数据
    每个字节都对了下,没发现任何问题,老设备发信息,他的TCP包的flag是18所以urgent pointer是00 00
    新设备发2000,TCP包的flag虽然是38,urgent pointer是 00 50,但是没有那12字节的options-padding,就这区别了
    至于包的大小和验证字节都是对了的

    2019-07-17 18:43:57
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载