linux组播编程

linux组播编程

linux组播编程步骤:

  1. 建立一个socket;
int igmpi_socket;
igmpi_socket = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP);

domain(域) → AF_INET:IP网络协议(指的是IPv4);
type(套接字类型) → SOCK_RAW:原始套接字;
protocol(协议) → IPPROTO_IGMP:IGMP协议(一般情况下,让protocol等于0就可以,系统会给它默认的协议。但是要是使用raw socket协议,protocol就不能简单设为0,要与type参数匹配)。

  1. 设置组播的参数,例如超时时间TTL,本地回环许可LOOP等;
    组播程序设计使用setsockopt()函数和getsockopt()函数来实现,组播的选项是IP层的。
int setsockopt(SOCKET s, int level, int optname, const char FAR * optval, int optlen);
int getsockopt(SOCKET s, int level, int optname, char FAR * optval, int FAR * optlen);

level必须为IPPROTO_IP,optname就是在组播起到最主要作用的一个字段,optname可取值如下:
可取值
在这里插入图片描述

a) IP_MULTICAST_TTL;
选项1~255之间的任何值。默认情况下,组播报文的TTL被设置成了1,也就是说到这个报文在网络传送的时候,它只能在自己所在的网络传送,当要向外发送的时候,路由器把TTL减1以后变成了0,这个报文就已经被Discard了。例如:


                
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值