简单的UDP监听需要打开w网路岗才能接收到数据的原因和解决办法

在做网络通讯项目过程中遇到一个问题:两张光纤通讯网卡之间通过单模光纤发送UDP数据,而只有打开网卡数据采集软件如:网路岗或Wireshark时才能看到数据包,用普通的网络调试助手或者自己开发的数据采集软件无法收到数据。

经过问题定位,发现是两张网卡的mac地址不对造成的:在UDP通讯过程中,发送端需要知道目标地址的mac地址,而接收端在接收时会判断数据包是否与自己的mac地址一致,如果一致就接收和处理数据,不一致就不接收和处理。网路岗或Wireshark在采集网卡上的UDP数据时,屏蔽掉了mac地址,所以可以收到相同IP地址的数据并显示,但是普通的UDP数据采集软件或自己开发的UDP数据采集软件不能做到这样一步,所以只有在打开网路岗或Wrieshark软件时,自己开发的软件或网络调试助手才采集到了数据。不打开网络岗或Wireshark时,数据包被丢弃掉。

处理办法:将接受端的mac地址设置为与发送端的mac地址相同,这样就可以直接用网络调试助手或者自己开发的软件采集数据了。更进一步分析,两张光纤网卡不在同一个局域网中,这样进行UDP通讯时,发送端寻找目标地址的网卡时不能获取到,发送端通过发送ARP请求包获取目标地址网卡,不在同一局域网时,收不到目标地址网卡返回的ARP包,所以就失败了,网上有做上位机和下位机开发的人也遇到相似的问题,但是没有说明解决办法。还是记下来对以后开发有帮助。

物理网卡的mac地址设置可以在网上轻易找到,这里就不做多余的叙述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

charlie07

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值