我正在尝试使用多播将多个UDP数据报发送到嵌入式Linux单元。设备上的内核版本是:
/ # uname -r
2.6.24.6
出于测试目的我正在使用找到的代码here(添加了几个标头并更改了ip地址以匹配设备的IP地址)
问题是同一组播组(Windows PC)中的其他设备能够接收数据而设备不能接收数据。我在某地读过必须修改rp_filter的值。我尝试了所有选项,但无济于事。
我可以毫无问题地将设备作为服务器运行。但它根本没有收到。
请注意,netstat -g
不起作用。
/ # netstat -g
netstat: invalid option -- g
BusyBox v1.11.2 () multi-call binary
Usage: netstat [-laentuwxr]
Display networking information
Options:
-l Display listening server sockets
-a Display all sockets (default: connected)
-e Display other/more information
-n Don't resolve names
-t Tcp sockets
-u Udp sockets
-w Raw sockets
-x Unix sockets
-r Display routing table
因此我无法查看群组成员资格。
P.S:我在linux PC上运行了相同的程序(来自上面的链接的代码)并且它正常工作。所以代码不是问题。
答案 0 :(得分:1)
解决了它。搞乱了我能在系统上找到的所有内容后,我通过在混杂模式下运行eth0来实现它
ifconfig eth0 promisc