频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

IP多播技术及其编程(3)

作者: 佚名 出处:中国IT实验室  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2007-06-01 14:14
关 键 词:IP多播  多播地址  多播组
阅读提示:目前,IP多播技术被广泛应用在网络音频/视频广播、AOD/VOD、网络视频会议、多媒体远程教育、“push”技术(如股票行情等)和虚拟现实游戏等方面。 本文对IP多播技术及其编程进行了介绍。

8.等待事件

调用WSAAsyncSelect()函数,使套接字置于非阻塞模式,这时应用程序就可在该套接字上接收以Windows消息为基础的网络事件通知。例如,若参数lEvent值为FD_READ,则应用程序可在套接字上接收到“数据正等待被读入”的通知。

9.从多播组接收数据

调用recvfrom函数,可在指定的UDP套接字上读取输入数据。多播通信中数据的发送与接收一般采用同一个端口,因此其发送套接字和接收套接字是一样的。

10.关闭套接字,释放Winsock资源。

在多播通信结束后,先调用closesocket()函数关闭多播套接字和UDP套接字,然后调用WSACleanup()函数结束对Windows Sockets DLL的使用。

三、应用实例
为了说明IP多播技术的应用方法,本人在Visual C++.NET环境下设计了一个简单的基于Windows Socket 2的IP多播应用程序,通过该例子读者可以掌握IP多播应用程序设计的一般方法。该程序的具体设计方法如下:

1.在Visual Studio.NET中建立一个基于对话框的MFC项目CMulticastSocket。注意在“高级功能”设置中不要选择“Windows套接字”,这是因为MFC只支持Windows Socket 1而不支持Windows Socket 2。为了能使用Winsock 2 API编程,在程序中应包含“winsock2.h”头文件,并在项目中加入ws2_32.lib的静态库,该静态库应设置在项目属性的“链接器”\“输入”\“附加依赖项”中。

2.在对话框(类名CCMulticastSocketDlg)资源中,设置它的Caption为“WinSock 2多播应用程序”,并添加以下控件:

静态文本:Caption为“接收到的信息:”;
编辑框:ID为IDC_RECEIVE_EDIT,Read Only、Auto Vscroll、Vertical Scroll和Multiline属性值都为True
静态文本:Caption为“发送的信息:”
编辑框:ID为IDC_SEND_EDIT
第一个按钮:Caption为“加入多播组(&J)”,ID为IDC_JOIN_BUTTON
第二个按钮:Caption为“多播发送(&S)”,ID为IDC_SEND_BUTTON
第三个按钮:Caption为“离开多播组(&L)”,ID为IDC_LEAVE_BUTTON
第四个按钮:Caption为“退出(&Q)”,ID为IDC_QUIT_BUTTON

为两个编辑框分别添加相关联的CString类型的变量m_SendMessage和m_ReceiveMessage;为四个按钮添加相应的消息处理函数;为对话框添加定时器消息(用于定时显示接收到的消息)及其消息处理函数。

3.添加一个新的对话框资源,设置它的Caption为“加入多播组”,保留默认的两个按钮控件,同时添加添加以下控件:

静态文本:Caption为“IP多播组地址:”
编辑框:ID为IDC_IPADDRESS_EDIT
静态文本:Caption为“IP多播端口:”
编辑框:ID为IDC_PORT_EDIT
静态文本:Caption为“生存时间:”
编辑框:ID为IDC_TTL_EDIT
复选框:Caption为“多播返回:”,ID为IDC_LOOPBACK_CHECK,Left Text属性值为True。

为该对话框添加新的类CJoinGroupDlg,它的基类为CDialog,然后为该对话框中的三个编辑框分别添加相
关联的变量,即CSting m_IPAddress、UINT m_nPort、UINT m_nTTL;为复选框添加相关联的BOOL类型的变量m_Loopback。

4.在CMulticastSocketDlg.h文件的前面添加CJoinGroupDlg的头文件:#include “JoinGroupDlg.h”,并在CCMulticastSocketDlg类中添加了一个CJoinGroupDlg类实例对象m_JoinDlg。

5.为了能在对话框中接收网络事件通知,应增加一个用户自定义的消息及消息处理函数,具体实现方法如下:在CMulticastSocketDlg.h文件的前面自定义消息:#define WM_SOCK_MSG(WM_USER+166),并在afx_msg块中说明消息处理函数:afx_msg LRESULT OnSocketMsg (WPARAM wParam,LPARAM lParam);在CMulticastSocketDlg.cpp文件中的消息映射块中,使用ON_MESSAGE (WM_SOCK_MSG,OnSocketMsg)宏指令将消息映射到消息处理函数中,并具体实现消息处理函数:LRESULT CCMulticastSocketDlg:: OnSocketMsg(WPARAM wParam,LPARAM lParam){…}。

该程序的主要代码可参见程序清单,相关函数的详细说明可参看Microsoft MSDN帮助系统。为了节省篇幅,程序中省略了部分自动生成的和用于错误处理的代码。

共4页: 上一页 [1] [2] 3 [4] 下一页
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·路由器设置与口令恢复 (查看64920次)
·常用交换机典型配置 (查看37738次)
·网络管理员考试全真模拟试题(八.. (查看33921次)
·三层交换技术专题 (查看29084次)
·子网掩码教程 (查看26681次)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有