Linux系统,无法收到组播消息的问题
解决办法:
做以下3个修改
1. /etc/sysctl.conf 文件中的 net.ipv4.conf.all.rp_filter 设置成0
2. sysctl -w net.ipv4.conf.all.rp_filter=0
3. echo "0">/proc/sys/net/ipv4/conf/all/rp_filter
原理:
为了安全考虑,linux系统会根据rp_filter的值来对数据包进行检查。
当rp_filter为1时,会对数据包的目的地址进行检查,如果目的ip不是本机ip,则直接丢弃数据包。
因为组播数据包的目的地址是组播IP,肯定和本机ip不匹配,所以数据包会被丢弃。
当把rp_filter改为0时,不进行检查,所有数据包都会收到,所以应用程序就可以收到组播消息了。
Linux系统,无法收到组播消息的问题的更多相关文章
- Linux IPC socket 广播,组播
getsockopt()/setsockopt() //获得sockfd指向的socket的属性 int getsockopt(int sockfd, int level, int optname, ...
- linux系统用户和组管理
用户和组管理 Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户的组的创建与管理至关重要. 学习要点: 了解用户和组的群的配置文件. 熟悉掌握Linux下用户的创建和维护管理. 熟悉掌握 ...
- Linux系统用户、组和权限管理
一.用户与组 1.用户与组的概念 在linux系统中,根据系统管理需要将用户分为三种类型: 1.超级用户:root是linux系统的超级用户,对系统拥有绝对权限.由于root用户权限太大,只有在进行系 ...
- linux学习15 Linux系统用户和组全面讲解
一.用户,组和权限管理 1.多用户(Multi-tasks),多任务(Multi-Users).对计算机而言,每一个使用者就是一个用户. 2.每个使用者: a.用户标识,密码: 认证(Authenti ...
- linux系统的命令组与函数
一.命令组 许多时候,我们在shell操作上,需要在一定条件下一次执行多个命令,也就是说,要么不执行,要么就全执行,而不是每次依序的判断是否要执行下一个命令.或是,需要从一些命令执行优先次顺中得到豁免 ...
- Linux网络编程组播测试代码
Linux网络编程组播测试代码 (转载) 组播客户端代码如下: #include <sys/types.h>#include <sys/socket.h>#include ...
- 【Socket】linux组播技术
1.mystery引入 1)本学期学了计算机网络,对一些网络底层的东西还是不大了解 2)目前IP网络流行3种通信模式,分别是单播/广播与组播 3)根据Internet关于IP地址 ...
- IPv4组播通信原理
2011-05-08 21:21:14 标签:组播 vin_do,vin_do学习笔记,笔记 休闲 职场 摘自网络,感谢原作者 摘要: 本文试图成为学习TCP/IP网络组播技术的入门材料.文中介绍了组 ...
- Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到
---------------------------!! 转载请注明出处 !!----------------------- 一个项目,利用wifi组播在局域网内发现设备.却发现在有的路由器上能 ...
随机推荐
- JNI崩溃调试
JNI崩溃了,系统日志会打印堆栈信息,所以第一步就是取日志 adb shell logcat -v threadtime >>d:/log.txt 然后找到日志里面的关键字backtrac ...
- hdu5747 Aaronson 贪心
Aaronson Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- Jenkins发布回滚方案
Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...
- PRISM 4 - RegisterViewWithRegion & Custom Export Attributes
5down votefavorite I am using Prism 4 with MEF Extensions and the MVVM pattern. During initializat ...
- redis源码分析之数据结构:跳跃表
跳跃表是一种随机化的数据结构,在查找.插入和删除这些字典操作上,其效率可比拟于平衡二叉树(如红黑树),大多数操作只需要O(log n)平均时间,但它的代码以及原理更简单. 和链表.字典等数据结构被广泛 ...
- 更新操作 关于json字符串的拼接、json字符串与json对象之间的转换
更新操作 后台 /** * 更新人员 * @return "updateSdr" */ public String updateTheSdr(){ jsonstr = " ...
- 【java基础之异常】死了都要try
目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...
- 在IOS系统中微信浏览器input输入框输入值无效
[contenteditable="true"], input, textarea { -webkit-user-select: auto!important; -khtml-us ...
- cocos2dx基础篇(5) 按钮
这篇是直接复制的别人的,太多了,难得写... [本节内容] CCMenu.CCMenuItem其具体的六个子类 [菜单CCMenu] 菜单CCMenu是用来装载菜单按钮的图层,图层中的子节点只能够是菜 ...
- python学习之数据类型(dic)
3.8 字典 3.8.1 字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{ }括起来的键值对组成,在dict中key是唯一的.在保存的时候,根据key来计算出一个内存地址, ...