Android MulticastSocket.joinGroup不会触发发送IGMP消息

时间:2015-01-13 08:17:23

标签: android

代码:

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 个答案:

答案 0 :(得分:3)

似乎很多设备都没有支持内核中内置的多播。打开一个adb shell并执行

cat /proc/net/igmp

如果不存在,则内核已经构建而没有CONFIG_IP_MULTICAST。您基本上是SOL而不会使您的设备生根和/或刷新自定义固件。

这是一种令人悲伤的事态。