欢迎来到天天文库
浏览记录
ID:46865117
大小:104.50 KB
页数:10页
时间:2019-11-28
《ERP实验指导9》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验九基于WSAAsyncSelect模型的广播通信网络程序设计一、实验目的:1、掌握网络广播通信程序的设计方法。2、掌握使用WSAAsyncSelect模型设计网络应用程序的方法。二、实验内容和要求:在Windows环境下,设计一个棊于WSAAsyncSelect模型的广播通信网络程序。要求如下:(1)基于WSAAsyncSelect模型实现基于Windows消息机制的网络通信程序。(2)程序基于图形用户界而。(3)可向网络发送广播信息。(4)可接收网络上的广播信息。三、实验环境:联网并运行WindowsXP操作系统的PC机及VisualC++6.0集成开发
2、环境(IDE)。四、实验指导1>如何为对话框添加自定义消息。对于Windows的标准消息,我们通过类向导的消息映射或者右击类名选择添加Windows消息处理菜单项的方式來实现消息与处理函数的连接。对于用户自定义的非标准消息,则不能采取以上的方法。增加用八自定义消息并将其与相应的函数相关联的方法如下:(1)定义消息号可以使用宏定义语句“#define”增加一•个用八自定义消息,该定义的作用范围应该包括整个类。例如:#defineWM_MYMSG(WM_USER+1)注意:消息号不能与现有消息的消息相同。通常用户自定义的消息号从系统定义的常量WM_USER开始分配
3、。(2)增加消息处理函数在对话框中增加一个成员函数,用于对口定义消息进行处理。该函数的格式如下:返回值类型函数名(WPARAMwParam,LPARAMIParam)例如用于対WM_MYMSG消息处理的函数的名称叫MyMsgHandle,该函数没有返回值,则该函数在类屮的声明如下:voidMyMsgHandle(WPARAI/lwParam,LPARAMIParam);(1)在类的头文件中,移动消息处理函数声明到类的AFX_MSG块,并在函数声明前面添加afx_msgo比如://Generatedmessagemapfunctions//{{AFX_MSG(
4、CTestDlg)afx_msgvoidMyMsgHandle(WPARAMwParam,LPARAMIParam);//}}AFX_MSGDECLARE_MESSAGE_MAP()(4)在类的实现文件的消息块中,使用ON.MESSAGE宏指令将消息映射到消息处理函数。格式为:ON_MESSAGE(消息,函数名)比如:BEGIN_MESSAGE_MAP(CTestDlg,CDialog)//{{AFX_MSG_MAP(CTestDlg)ON_MESSAGE(WM_MYMSG,MyMsgHandle)//}}AFX_MSG_MAPEND_MESSAGE_MAP(
5、)(5)在消息处理函数中添加代码,以实现对消息的处理。传递给消息处理函数的参数wParam和IParam携带了与消息相关的更详细的信息。2、关于WSAAsyncSelect函数的使用。WSAAsyncSelect函数的原形如F:intWSAAsyncSelect(SOCKETs,HWNDhWnd,unsignedintwMsg,longIEvent);其中:◊s:指定用户感兴趣的套接字。◊hWnd:指定一个窗口或对话框句柄。当网络事件发生后,该窗口或对话框会接收到通知消息,并口动执行对应的凹调函数。◊wMsg:指定网络事件发生时,打算接收的消息。◊IEvent
6、:指定一个位掩码,代表应用程序感兴趣的一系列事件。lEvent参数由下农屮列出的值通过位或运算组成:>FD_READ>FD_WRITE>FD_OOB>FD_ACCEPT>FD_CONNECT>FD_CLOSE欲接收读准备好的通知欲接收写准备好的通知欲接收带外数据到达的通知欲接收将要连接的通知欲接收已连接好的通知欲接收套接口关闭的通知为了能够把在套接字s上发生的事件交给对话框的窗口过程处理,需耍在调用WSAAsyncSelect函数时,把对话框窗口的句柄作为第二个参数,传递给WSAAsyncSelect函数。若P是一个指向对话框的指针,则使用以卜"的方式可以获得
7、对话框的句柄。p->m_hWnd在对话框的成员函数中,扌旨针:this指向了对话框本身,所以,在对话框中使用如下语句即可获得对话框的句柄:this->m_hWnd(或者肓接使用:m_hWnd)若在对话框的成员函数屮,调用函数WSAAsyncSelect把套接字s设置为异步模式,要求在套接字s上有数据可读或者是有连接请求到达吋,向对■话框本身发送消息WM.MYMSG,那么,调用的WSAAsyncSelect函数的语句如卜•:WSAAsyncSelect(s,m_hWnd,WM_MYMSG,FD_READ
8、FD_ACCEPT);3、关于广播广播是指把数据报发送给一
9、个网络中的所有主机。其主要用于:(1)
此文档下载收益归作者所有