接收MAC ID广播UDP数据包的问题

时间:2011-02-23 07:20:16

标签: macos udp broadcast packets

在我的情况下,从硬件UDP数据包发送到目标PC - 192.168.13.250(45141)但MAC ID是FF:FF:FF:FF:FF:FF。现在我绑定到目的地IP&端口没有使用套接字。但我无法使用套接字程序从PC接收UDP数据包。它不是来自recvfrom()调用。还在等待。如果我使用硬件设置将MAC ID更改为目标PC MAC ID(00-12-d5-f6-3e-92),那么我就能够接收UDP数据包。不改变MAC ID,即如何从广播MAC ID接收UDP数据包。任何帮助将受到高度赞赏。提前致谢。以下是Wireshark的日志。

  • 未收到以下UDP数据包(Wireshark)

第3609帧(线上7978字节,捕获7978字节) 以太网II,Src:0a:dc:0a:dc:0a:dc(0a:dc:0a:dc:0a:dc),Dst:广播(ff:ff:ff:ff:ff:ff) 互联网协议,Src:192.168.13.25(192.168.13.25),Dst:192.168.13.250(192.168.13.250) 用户数据报协议,Src端口:lbc-control(2780),Dst端口:45141(45141) 数据(7936字节)

  • 收到以下UDP数据包(Wireshark)

第3609帧(线上7978字节,捕获7978字节) 以太网II,Src:0a:dc:0a:dc:0a:dc(0a:dc:0a:dc:0a:dc),Dst:广播(00:12:d5:f6:3e:92) 互联网协议,Src:192.168.13.25(192.168.13.25),Dst:192.168.13.250(192.168.13.250) 用户数据报协议,Src端口:lbc-control(2780),Dst端口:45141(45141) 数据(7936字节)

1 个答案:

答案 0 :(得分:1)

RFC 1122第3.3.6节规定: “当主机向链路层广播地址发送数据报时,IP目的地址必须是合法的IP广播或IP多播地址。”

如果您希望您的PC接收带有广播MAC地址的UDP数据包,您还应该使用广播IP地址。