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 に答える