2011-02-23 59 views
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的日志。收到MAC ID广播UDP包的问题

  • 随着以下UDP分组不被接收(Wireshark的)

框架3609(电源线7978个字节,7978个字节捕获) 以太网II,Src的:0A:DC:0A:DC: 0a:dc(0a:dc:0a:dc:0a:dc),Dst:Broadcast(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:Broadcast(00:12:d5:f6:3e:92) Internet Protocol,Src:192.168.13.25(192.168.13.25),Dst:192.168。 13.250(192.168.13.250) 用户数据报协议,源端口:LBC控制(2780),目的端口:45141(45141) 数据(7936个字节)

回答

1

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

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

+0

感谢您的帮助.... – ulaga 2011-02-24 12:49:07