Android MulticastSocket 组播

现象

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了。


CONFIG_IP_MULTICAST

adb shell netcfg

adb shell ifconfig eth0

参考:

How can I know if IP Multicast is enabled

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

Many devices have multicast disabled in the kernel

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 6,086评论 1 13
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,199评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,383评论 6 174
  • 0×1.IPv6概述a.IPv6地址格式IPv6地址一共有128位长度(IPv4一共是32位长度),每16位为一个...
    Zero___阅读 2,001评论 0 4
  • 文/小北 西格蒙德•弗洛伊德说过:“世界上没有所谓的玩笑,所有的玩笑都有认真的成分。”其实所有的青春大都如此,饮过...
    小北爱吃肉肉阅读 15,021评论 144 470

友情链接更多精彩内容