マルチキャストを使用して複数の 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 で同じプログラム (上記のリンクのコード) を実行したところ、正常に動作しました。したがって、コードは問題ではありません。