组播编程的几个问题

本文记录了在组播编程中遇到的问题,包括在Windows平台上绑定组播地址的限制,如何在不同操作系统下查看组播组信息,IPv6组播在Apple系统中的特殊处理,以及在多网络接口设备上进行组播编程时指定本地接口的重要性。参考了Stack Overflow和Microsoft Technet的相关资料。
摘要由CSDN通过智能技术生成

组播编程遇到的几个问题记录

1 为了接收组播组数据,本地监听socket必须绑定一个端口,而接口ip必须是INADDR_ANY(ipv4)或者 inaddr6_any(ipv6),或者是绑定一个组播IP(注意组播ip区分ipv4和ipv6)。但是,在windows平台下面,不能绑定组播地址,必须绑定wildcard ip。

2 在windows系统下面显示组播组信息

netsh interface ip show joins

3 unix系统下面显示组播组信息

netstat -ng

4 ipv6组播编程在苹果系统下面,只能用IPV6_JOIN_GROUP/IPV6_LEAVE_GROUP。不能用
IPV6_ADD_GROUP/IPV6_DROP_GROUP

5 在windows下发现sin6_scope_id 并不是local interface index

6 在multi-home的机器下组播编程,必须指定发送的local interface。方法是设定mreq.imr_interface(ipv4) 或者mreq6.ipv6mr_interface(ipv6)。因为不指定,系统会默认选择一个出口,这样系统选择的窗口可能网络不通。比如windows安装了vmware,有很多虚拟interface,有的可能是不通的。

参考

[1] http://stackoverflow.com/questions/10692956/what-d

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值