android wifi 组播

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android wifi 组播相关的知识,希望对你有一定的参考价值。

我用2部手机,通过路由器,组播地址设成224.0.2.0 2部手机可以进行组播收发。 但是 我一部手机做为热点后,这部手机就无法向组播地址发送或接受了,错误显示: network is unreachable 请问这个是为什么呀?

224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;
224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;
224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效
239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。
把地址改到239.0.0.0~239.255.255.255之间。看看追问

我试过239.0.0.0 还是发送不了

追答

那应该是手机不行

追问

可是 通过路由器发送的时候 可以的

追答

不知道怎么说,一般手机是不行的,!!!!

参考技术A 请问你使用的是什么手机软件?组播源呢? 参考技术B 遇到相同问题,请问有没有找到解决方法呀? 参考技术C 因为2部手机连路由器是在一个局域网内,当一部手机做为热点后,这部手机就连不上路由器,也就不在一个局域网了。

Android MulticastSocket 组播

参考技术A MulticastSocket 发送组播消息,一些手机上可以发送、接收  组播 消息,有些手机不可用

     1>.能正常发送接收的手机,向组播地址发送了组播消息后,同时会向组播地址发送一个  IGMP v2的协议

2>.能发送,接收不到组播消息的手机设备,可以发现设备没有向组播地址发送IGMP协议

3>.而查看手机设备,在   /proc/net/   目录下,有igmp文件的设备会发送IGMP协议,能正常完成组播消息收发,而没有igmp文件的,就是不能完成组播消息收发的。igmp是IPv4下的协议文件,igmp6是IPv6的协议。可以看到所有设备都支持IPv6的igmp

4>.在Android系统下,编译Linux kernel时有一config  CONFIG_IP_MULTICAST ,如果是定制系统在编译系统的时候配置这个选项   CONFIG_IP_MULTICAST=y  ,就能enable组播功能。但是有很多系统厂商在编译的时候都默认把这个config给disable了。

参考:

How can I know if IP Multicast is enabled

Android App用MulticastSocket监听组播,为什么连接到不

Many devices have multicast disabled in the kernel

以上是关于android wifi 组播的主要内容,如果未能解决你的问题,请参考以下文章

android 不能接收组播数据,但能够发送组播数据

Android MulticastSocket 组播

求助 有个android手机建立热点后发送组播信息的问题

Android对UDP组播接收数据的有限支持

浅谈Android中的组播(多播)

Android 使用udp发送广播