1

在我的情况下,从硬件 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) Internet 协议,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) Internet 协议,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 字节)

4

1 回答 1

1

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

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

于 2011-02-23T21:08:45.843 回答