代码:
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成员资格的信息,对吗?
答案 0 :(得分:3)
似乎很多设备都没有支持内核中内置的多播。打开一个adb shell并执行
cat /proc/net/igmp
如果不存在,则内核已经构建而没有CONFIG_IP_MULTICAST。您基本上是SOL而不会使您的设备生根和/或刷新自定义固件。
这是一种令人悲伤的事态。