2

我正在尝试使用多播将多个 UDP 数据报发送到嵌入式 linux 单元。设备上的内核版本为:

/ # uname -r
2.6.24.6

出于测试目的,我使用此处找到的代码(添加了几个标头并更改了 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

因此,我无法检查组成员身份。

PS:我在一台 linux PC 上运行了相同的程序(代码来自上面的链接),它运行正常。所以代码不是问题。

4

1 回答 1

2

解决了。在弄乱了我在系统上可以找到的所有东西之后,我通过在混杂模式下运行 eth0 来让它工作

ifconfig eth0 promisc
于 2013-08-05T15:11:08.127 回答