我现在在多台win7和xp的主机上进行java的socket通信,主机间的源代码是通过svn同步,肯定完全一样,现在问题是(以下测试的socket通信文件完全一样):两台xp主机间通信完全没有问题,xp往win7发送也没有问题
问题出在:当win7往xp发送数据时,就会丢字节,在xp上最多接收8755个字节(接收缓冲区足够大),这样该如何解决,有没有哪位也碰到过同样的问题?麻烦指点下.
我只能大概描述下 新系统发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,就这区别了
至于包的大小和验证字节都是对了的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。