Linux网络编程之多播.doc

Linux网络编程之多播.doc

ID:59254202

大小:21.00 KB

页数:7页

时间:2020-09-08

Linux网络编程之多播.doc_第1页
Linux网络编程之多播.doc_第2页
Linux网络编程之多播.doc_第3页
Linux网络编程之多播.doc_第4页
Linux网络编程之多播.doc_第5页
资源描述:

《Linux网络编程之多播.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.概念单播是用于两个主机之间传送数据,广播是一个主机对局域网内的所有主机发送数据。而多播,又称为组播,它是对一组特定的主机通信。将网络上同一类型业务逻辑上分组,只和组内的成员通信,其它主机没有加入组则不能通信。与单播相同的是,组播允许在Internet上通信,而广播只是同一局域网内的主机通信。组播地址是特定的,D类地址用于组播,即244.0.0.0到239.255.255.255.并划分为局部连接多播地址,预留多播地址和管理权限多播地址3类。(1)局部多播地址(224.0.0.-224.0.0.255)为路由协议和其它用途保留的地址,路由器不转发此

2、范围的IP包(2)预留多播地址  (224.0.1.0-238.255.255.255)可用于全球范围内或网络协议(3)管理权限的多播(239.0.0.0-239.255.255.255)可供组织内使用,类型于私有IP,不用于Internet,可限制多播范围2.多播套接字设置可用setsockopt或getsockopt设置或得到多播选项.常用的多播选项如下所示:IP_MULTICAST_TTL   设置多播的TTL值IP_MULTICAST_IF     获取或设置多播接口IP_MULTICAST_LOOP  禁止多播数据回送到本地loop接口IP

3、_ADD_MEMBERSHIP  将指定的接口加入多播IP_DROP_MEMBERSHIP 退出多播组structip_mreq{ structin_addrimn_multicastaddr;//多播组地址 structin_addrimr_interface;//加入的接口的IP地址}intttl=255;setsockopt(s,IPPROTO_IP,IP_MULTICAST_TTL,&ttl,sizeof(ttl));//设置跳数s-套接字描述符PROTO_IP-选项所在的协议层IP_MULTICAST_TTL-选项名&ttl-设置的内存缓冲

4、区sizeof(ttl)-设置的内存缓冲区长度structin_addrin;setsockopt(s,IPPROTO_IP,IP_MUTLICAST_IF,&in,sizeof(in));//设置组播接口intyes=1;setsockopt(s,IPPROTO_IP,IP_MULTICAST_LOOP,&yes,sizeof(yes));//设置数据回送到本地回环接口structip_mreqaddreq;setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,&req,sizeof(req));//加入组播组stru

5、ctip_mreqdropreq;setsockopt(s,IPPROTO_IP,IP_DROP_MEMBERSHIP,&dropreq,sizeof(dropreq));//离开组播组3.多播程序的设计流程(1)建立socket(2)设置TTL值IP_MULTICAST_TTL(3)设置是否允许本地回环IP_MULTICAST_LOOP(4)加入多播组IP_ADD_MEMBERSHIP(5)发送数据send(6)接收数据recv(7)退出多播组IP_DROP_MEMBERSHIP注意:TCP协议也不能用于多播.4.多播实例服务器端不停的向加入多播组

6、的主机发送数据.服务器:#include#include#include#include#include#include/**广播与多播只支持UDP协议,因为TCP协议是端到端,这与广播与多播的理念相冲突广播是局域网中一个主机对所有主机的数据通信,而多播是一个主机对一组特定的主机进行通信.多播可以是因特网,而广播只能是局域网。多播常用于视频电话,网上会议等。setsockopt设置套接字选项可以设置多播的一些相关信

7、息IP_MULTICAST_TTL//设置多播的跳数值IP_ADD_MEMBERSHIP//将主机的指定接口加入多播组,以后就从这个指定的接口发送与接收数据IP_DROP_MEMBERSHIP//主机退出多播组IP_MULTICAST_IF//获取默认的接口或设置多播接口IP_MULTICAST_LOOP//设置或禁止多播数据回送,即多播的数据是否回送到本地回环接口structip_mreq{ structin_addrimn_multicastaddr;//多播组地址 structin_addrimr_interface;//加入的接口的IP地址}

8、例子:intttl=255;setsockopt(s,IPPROTO_IP,IP_MULTICAST_TTL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。