linux 组播回送问题

chew351chew 2014-01-25 02:58:57
在linux下 ip组播可通过setsockopt 设置IP_ADD_MEMBERSHIP 加入组播。通过IP_MULTICAST_LOOP设置数据回送。
一下是测试

在fedroa版linux(内核版本2.6.31.5)运行虚拟机下双网卡加入组播

设置IP_MULTICAST_LOOP许可回送,可以收到同主机eth1和eth2在同一个组播组中可以互相收到数据包。
设置IP_MULTICAST_LOOP禁止回送,同主机eth1和eth2在同个组播组中不会收到彼此的数据包。

以上没有疑问,但是:
原始套接字通过ioctl 设置SIOCADDMULTI 加入组播 通过SIOCADDMULTI加入组播找不到像IP_MULTICAST_LOOP回送许可的相关选项。在x86虚拟机跑fedroa版的linux(内核版本2.6.31.5)下双网卡加入同意组播组没有收到彼此间的数据包。eth1和eth2即使在同一组播组中,如果同主机将通不了信,这不合理啊!!!!

但是在power pc下linux(内核版本2.6.38.8),同主机双网卡加入以原始套接字ioctl方式加入同一组播组中,eth1和eth2彼此间能收到数据包。

问题:如何使以ioctl设置SIOCADDMULTI方式加入组播的方式 和 以setsockopt设置IP_ADD_MEMBERSHIP加入组播方式一样可以控制回送许可?
...全文
391 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chew351chew 2014-02-10
  • 打赏
  • 举报
回复
自己顶一下 六

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧