- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c-网络应用编程第06章-UDP应用编程
* * * * * * * * * * 6.3.1 广播和组播的基本概念 组播和广播的区别: (1)本地广播无法通过路由器,广播只是限于本网段内,遇到路由器则止。同网段内其他在指定端口侦听的程序都能收到该包都需要一个数据copy。组播没有这个限制,只要加入组就能收到数据包。 (2)由于广播是向某个子网中的所有计算机用户发送消息,没有目的性,会增加网络传输负担,而且资源消耗较高。组播将消息发送到加入指定组播组的计算机中,组播组是开放的,每台计算机都可以通过程序随时加入到组播组中,也可以随时离开,因此减少了不必要的网络传输负担。 6.3.2 加入和退出组播组 组播组:是分享一个组播地址的一组设备。任何发送到组播地址的消息都会被发送到组内的所有成员设备上。 组可以是永久的,也可以是临时的。大多数组播组是临时的,仅在有成员的时候才存在。 组播地址:组播地址是范围在到55的D类IP地址。 IP组播使用特殊的IP地址范围来表示不同的组播组。 用户创建一个新的组播组时只需从地址范围内选出一个地址,然后为这个地址构造一个对象,就可以开始发送消息了。 6.3.2 加入和退出组播组 加入组播组 在UdpClient类中,使用JoinMulticastGroup方法将UdpClient对象和TTL一起加入组播组,使用DropMulticastGroup退出组播组。例如: //创建UdpClient的实例并设置使用的本地端口号 UdpClient udpClient=new UdpClient(8001); udpClient.JoinMulticastGroup(IPAddress.Parse()); 或者: UdpClient udpClient=new UdpClient(8001); udpClient.JoinMulticastGroup(IPAddress.Parse(), 50); 其中50为TTL值。 6.3.2 加入和退出组播组 生存周期:TTL 使用组播时,应注意的是TTL(Time To Live,生存周期)值 的设置。TTL值是允许路由器转发的最大数目,当达到这个 最大值时,数据包就会被丢弃。如果使用默认值(默认值为 1),则只能在子网中发送。可以通过UdpClient对象的Ttl属 性直接设置TTL值,例如: UdpClient myUdpClient = new UdpClient(); myUdpClient. TTL = 50; 该语句设置TTL值为50,即最多允许50次路由器转发。 6.3.2 加入和退出组播组 2.退出多路广播组 利用UdpClient的DropMulticastGroup方法,可以退出组播组。参数中指出要退出的多路广播组的IPAddress实例。 UdpClient从组中收回之后,将不能再接收发送到该组的数据报。 例如: udpClient.DropMulticastGroup(IPAddress.Parse()); 6.3.3 利用广播和组播实现群发功能 【例7-3】编写一个Windows应用程序,向子网发送广播信息,同时接收子网中的任意主机发送的广播信息,程序设计界面如图7-3所示。 图7-3 例7-3的设计界面 6.3.3 利用广播和组播实现群发功能 利用组播实现群发功能 1、广播的通信模式虽然能够实现一对多的通信需要,但是,由于广播是向子网中的所有计算机用户发送消息,没有目的性,不但增加了网络传输负担,而且资源消耗较高。 2、组播也叫多路广播。所谓组播是将消息从一台计算机发送到本网或全网内选择的计算机子集上,即发送到那些加入指定组播组的计算机上。 6.3.3 利用广播和组播实现群发功能 2.利用组播实现群发功能 udpClient = new UdpClient(port); IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0); 替换为: udpClient = new UdpClient(port); udpClient.JoinMulticastGroup(IPAddress.Parse()); udpClient.Ttl = 50; IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0); 6.3.3 利用广播和组播实现群发功能 2.利用组播实现群发功能(续) 并将buttonSend_Click中的 IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, port); udpCl
文档评论(0)