局域网,一台电脑控制嵌入设备。udp 通信,软件启动时会广播一下,设备回复,然后本地 ARP 缓存就更新了。
以前仅支持单一网卡,所以 udp 绑定到特定的网卡,比如 192.168.10.100 ,广播地址是 255.255.255.255 ,这样一切正常。
新程序要支持多网卡,所以 udp 绑定到 0.0.0.0 ,广播地址为特定网段的地址,比如 192.168.10.255 。
问题来了,如果设备意外重启后,程序再发送任何数据都会失败,因为 arp 缓存已经没了。
抓包发现系统会再次发送 arp 请求,但是收不到设备回复。可如果我用老程序的方式绑定在具体的网卡(192.168.10.100)上,并全局广播( 255.255.255.255 )就能收到 ARP 回复。
是硬件存在问题还是什么原因?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.