2013-08-05 42 views
0

我想多UDP數據包發送到使用多播嵌入式Linux設備。設備上的內核版本是:可以發送但是無法接收組播數據報文

/ # uname -r 
2.6.24.6 

用於測試目的我使用的代碼中發現here(增加了幾個頭,改變了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 

因此我無法檢查組成員身份。

P.S:我跑了相同的節目(從上面的鏈接代碼)Linux的PC上,它工作正常。所以代碼不是問題。

+0

我設法檢查/ proc /網/ IGMP和它說的eth0是E2010101成員 - > 226.1.1.1這是正確的。但是,我仍然沒有收到任何數據報 –

+1

您不需要netstat -g支持來查詢組成員資格。如果你將netstat -gn放在一個盒子上,你會看到netstat只是從/ proc中讀取這些信息。因此,讀取/ proc/net/igmp(和/ proc/net/igmp6 for ipv6)將顯示當前組成員資格。 (請注意,我的(x86)盒組對於224.0.0.1是010000E0,這意味着您可能需要切換一些字節順序)。 –

+0

@ amo-ej1:yupp我想通了。檢查我以前的評論。但仍然無法接收任何數據報。 –

回答

0

解決它。一切我可以找到系統上亂搞後,我得到了它在混雜模式下運行的eth0工作

ifconfig eth0 promisc 
+0

雖然我相信這是一個以太網驅動程序的bug。它也應該在混雜模式下工作。 –

+0

編輯:在非混雜模式* –

相關問題