2015-01-13 51 views
1

代碼:的Android MulticastSocket.joinGroup不會觸發發送IGMP消息

MulticastSocket s = new MulticastSocket(); 
InetAddress addr = InetAddress.getByName("230.230.230.1"); 
s.joinGroup(addr); 
//... 

在Ubuntu 14.04,當我運行它,我可以看到IGMPv2的 「會員報告組230.230.230.1」 的消息出來。但在Android上,沒有看到這樣的數據包。

當用戶調用joinGroup(或C中的setsockopt)時,這樣的數據包是必須通知路由器IGMP成員關係的,對嗎?

回答

1

看起來許多設備的出貨都不支持內核中的多播。打開一個adb外殼,並執行

cat /proc/net/igmp 

如果不存在,則內核已經被創建而沒有CONFIG_IP_MULTICAST。你基本上是沒有根植你的設備和/或閃存自定義固件的SOL。

這是一種悲傷的事態。