代码:

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

在ubuntu 14.04上,当我运行它时,我可以看到igmpv2“membership report group 230.230.230.1”消息。但在安卓系统上,却看不到这样的数据包。
当用户调用joingroup(或setsockopt in c)时,必须将igmp成员身份通知路由器,对吗?

最佳答案

许多设备在出厂时似乎不支持内核中内置的多播。打开一个adb外壳

cat /proc/net/igmp

如果它不在那里,那么内核是在没有配置IP多播的情况下构建的。你基本上是sol,没有根你的设备和/或刷新自定义固件。
这是一种可悲的状况。

关于android - Android MulticastSocket.joinGroup不会触发发送IGMP消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27917605/

10-10 16:05