我正在尝试使用多播将多个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

10-08 11:08