- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * 6.3.1 广播和组播的基本概念 本地广播:IP地址分为两部分,网络标示部分(指定向哪个子网发送)和主机标示部分(全为1表示向该子网内的所有用户发送消息。),把主机标示部分二进制表示全部为1的地址称为本地广播地址 全球广播: 全球广播使用四个字节所有位全为1的IP地址,即点分十进制的55,这个特定的广播地址表明数据报的目的地是网络上的所有设备。但是由于路由器会自动过滤掉全球广播,所以使用这个地址没有实际意义。 IPAddress.BroderCast == 55 例1:对于B类网络,使用子网掩码。本地广播地址应为: 利用广播实现群发 6.3.1 广播和组播的基本概念 答:本地广播地址是55. 例2:对于B类网络,使用子网掩码。本地广播地址应为: 答:本地广播地址是55. 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 利用广播和组播实现群发功能 【例6-3】编写一个Windows应用程序,向子网发送广播信息,同时接收子网中的任意主机发送的广播信息,程序设计界面如图6-3所示。 图6-3 例6-3的设计界面 6.3.3 利用广播和组播实现群发功能 利用组播实现群发功能 1、广播的通信模式虽然能够实现一对多的通信需要,但是,由于广播是向子网中的所有计算机用户发送消息,没有目的性,不但增加了网络传输负担,而且资源消耗较高。 2、组播也叫多路广播。所谓组播是将消息从一台计算机发送到本网或全网内选择的计算机子集上,即发送到那些加入指定组播组的计算机上。 6.3.3 利用广播和组播实现群发功能 2.利用组播实现群发功能 udpClient = new UdpClient(p
文档评论(0)