2 Java Socket编程精品.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
00 +111111 3 例2-14:广播 2.4.5 IP 播组 6.4.1组播的概念 IP组播,也称多址广播或多播,是一种允许一台或多台主机作为多播源,发送单一数据包到多台主机的TCP/IP网络技术 多播作为一点对多点的通信,是节省网络带宽的有效方法之一。 使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。 一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。此外,不属于某一个多播组的主机也可以向该多播组发送数据包。 IP多播技术的硬件支持 (1)主机   支持IP多播通信的平台包括Windows CE 2.1、Windows 95、Windows 98、Windows NT 4和Windows 2000等,运行这些操作系统的主机都可以进行IP多播通信。新生产的网卡也几乎都提供了对IP多播的支持。 (2)集线器和交换机   目前大多数集线器、交换机只是简单地把多播数据当成广播来发送接收,但一些中、高档交换机提供了对IP多播的支持。例如,在3COM SuperStack 3 Swith 3300交换机上可启用802.1p或IGMP多播过滤功能,只为已侦测到IGMP数据包的端口转发多播数据包。 (3)路由器   多播通信要求多播源节点和目的节点之间的所有路由器必须提供对Internet组管理协议(IGMP)、多播路由协议(如PIM、DVMRP等)的支持 主机与多播组的互操作 当一台主机欲加入某个多播组时,会发出“主机成员报告”的IGMP消息通知多播路由器。 当多播路由器接收到发给那个多播组的数据时,便会将其转发给所有的多播主机。 多播路由器还会周期性地发出“主机成员查询”的IGMP消息,向子网查询多播主机,若发现某个多播组已没有任何成员,则停止转发该多播组的数据。 当支持IGMP v2的主机(如Windows 98/2000计算机)退出某个多播组时,还会向路由器发送一条“离开组”的IGMP消息,以通知路由器停止转发该多播组的数据。但只有当子网上所有主机都退出某个多播组时,路由器才会停止向该子网转发该多播组的数据。 组播地址 IP多播通信必须依赖于IP多播地址,在IPv4中它是一个D类IP地址,范围从到55,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类。 局部链接多播地址范围在~55,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包; 预留多播地址为~55,可用于全球范围(如Internet)或网络协议; 管理权限多播地址为~55,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。 注意在设计程序时,要根据应用范围选择多播地址 使用Winsock 2.0实现IP多播的 在Microsoft Windows环境下的网络编程接口就是Windows套接字(Windows Socket,简称Winsock)。 1.初始化Winsock资源 :在使用Winsock之前,必须调用WSAStartup()函数初始化Windows Sockets DLL。它允许应用程序或DLL指定Windows Sockets API要求的版本。 使用Winsock 2.0实现IP多播的 2.创建套接字 :调用WSASocket()函数可以创建一个使用UDP协议的套接字,它是加入多播组的初始化套接字,并且以后数据的发送和接收都在该套接字上进行。针对IP多播通信,可将参数dwFlags设置为WSA_FLAG_MULTIPOINT_C_LEAF、WSA_FLAG_MULTIPOINT_D_LEAF和WSA_FLAG_OVERLAPPED的位和,指明IP多播通信在控制层面和数据层面都是“无根的”,只存在叶节点,它们可以任意加入一个多播组,而且从一个叶节点发送的数据会传送到每一个叶节点(包括它自己);创建的套接字具有重叠属性。 使用Winsock 2.0实现IP多播的 3.设置套接字的选项 :调用setsockopt()函数为套接字设置SO_REUSEADDR选项,以允许套接字绑扎到一个已在使用的地址上。 4.绑定套接字 :调用bind()函数绑定套接字,从而将创建好的套接字与本地地址和本地端口联系起来。对于多播通信来说,发

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档