我正在尝试使用多播将多个UDP数据报发送到嵌入式linux单元。设备的内核版本为:
/ # uname -r
2.6.24.6
出于测试目的,我使用找到的代码here(添加了几个 header ,并更改了IP地址以匹配设备的IP地址)
问题在于,同一多播组中的其他设备(Windows PC)可以接收数据,而 native 则不能。我在某处读到必须修改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
因此,我无法检查组成员身份。
附言:我在Linux PC上运行了相同的程序(来自上面链接的代码),并且正常运行。因此,代码不是问题。
最佳答案
解决了。在弄清我在系统上可以找到的所有内容之后,我通过在混杂模式下运行eth0使其正常工作
ifconfig eth0 promisc