关于WIN7 双网卡 多播 问题

在升级到WIN7后,发现软件的网络冗余功能失效,仅一个网络接口能读取组播数据。经过排查,问题在于225开头的组播地址未被正确处理。通过使用`route`命令添加路由条目解决了问题,同时提供了以代码形式添加路由的方案,避免了操作员手动配置的复杂性。
摘要由CSDN通过智能技术生成

由于微软不再支持XP,只好做软件升级,换了编译平台,换了操作系统,现在支持WIN7了。

试用版发布已经有一段时间了,昨天突然被告知WIN7有一软件的网络冗余无效,大伙都惊呆了。急匆匆的跑去测试部,自己跑了一遍,确认真的是无效了。随后便开始了问题的诊断分析。

问题现象:

XP上运行,两个网络接口都能正确加入组播网,读到组播数据;

WIN7运行,同时插上两条网线,只有一个接口能读到数据;只插一条网线,无论插在哪个接口,都能读到数据,但这不符合我们的冗余要求。


问题分析:

1.既然XP上能正常运行,那会不会是某些API的参数在WIN7有点不同呢?

2.同时插上两条网线,软件只能从一个适配器接口获取到数据包,是不是有可能另外一个接口根本没有收到数据包?

3.如果另外一个接口没有收到数据包,会不会是发送方本来应该将发往两个网卡的数据包发到了同一个网卡上?

4.会不会是组播IP地址搞错了?


问题解决:

1.用WireShark抓组播包,我们使用的组播地址是225打头的,掩码24位。结果发现,两个网卡上都能抓到数据包,这是为啥捏,为啥软件就收不到呢?大哭

既然计算机收到数据包了,那2,3点就排除了。

2.调试代码,检查逻辑,检查API调用,发现均没有错误输出。由于没有收到数据包,软件一直在等待超时,等待超时。。。

3.对组播不是很了解啊,只知道,大家可以加入到组播组,然后其中一方发一个数据包到该组播组,大家都能收到,不像P2P需要重复发送多次。只能搜了。

4.找了一天解决方案,都没找到,后来还是同事找了个ROUTE的方案,纯属抱着试试的态度试试。原来真的行!


解决方案:

用route

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值