龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

Visual C++实现局域网IP多播效果(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
子网上的所有系统 244.0.0.2 子网上的所有路由器 244.0.0.5 子网上所有OSPF路由器 244.0.0.6 子网上所有指定的OSPF路由器 244.0.0.9 RIP第2版本组地址 244.0.1.1 网络时

  子网上的所有系统

  244.0.0.2

  子网上的所有路由器

  244.0.0.5

  子网上所有OSPF路由器

  244.0.0.6

  子网上所有指定的OSPF路由器

  244.0.0.9

  RIP第2版本组地址

  244.0.1.1

  网络时间协议

  244.0.1.24

  WINS服务器组地址

  3、多播路由器

  多播由特殊的多播路由器来实现,多播路由器同时也可以是普通路由器。各个多播路由器每分钟发送一个硬件多播信息给子网上的主机(目的地址为244.0.0.1),要求它们报告其进程当前所属的是哪一组,各主机将它感兴趣的D类地址返回。这些询问和响应分组使用IGMP(Internet group management protocol),它大致类似于ICMP。它只有两种分组:询问和响应,都有一个简单的固定格式,其中有效载荷字段的第一个字段是一些控制信息,第二字段是一个D类地址,在RFC1112中有详细说明。

  多播路由器的选择是通过生成树实现的,每个多播路由器采用修改过的距离矢量协议和其邻居交换信息,以便向每个路由器为每一组构造一个覆盖所有组员的生成树。在修剪生成树及删除无关路由器和网络时,用到了很多优化方法。

  4、库支持

  WinSock提供了实现多播通信的API函数调用。针对IP多播,WinSock提供了两种不同的实现方法,具体取决于使用的是哪个版本的WinSock。第一种方法是WinSock1提供的,要求通过套接字选项来加入一个组;另一种方法是WinSock2提供的,它是引入一个新函数,专门负责多播组的加入,这个函数便是WSAJoinLeaf,它是基层协议是无关的。本文将通过一个多播通信的实例的实现过程,来讲叙多播实现的主要步骤。因为Window98以后版本都安装了Winsock2.0以上版本,所以本文实例在WinSock2.0平台上开发的,但在其中对WinSock1实现不同的地方加以说明。

精彩图集

赞助商链接