实验6:基于MFC CAsyncSocket类的网络通信
15页1、实验6:基于MFC CAsyncSocket类的网络通信1 实验目的与要求 掌握MFC的CSocket类、CAsyncSocket类的用法。 掌握使用CAsyncSocket类进行网络程序设计的工作流程。 能运用CAsyncSocket类开发一个简单的网络聊天程序。2 实验设备与实验环境 连接到互联网上的IBM PC机两台。 硬件要求:Intel Pentium5 处理器、256MB以上内存,Ethernet网卡,网线若干。 软件要求:MS Windows 2000/XP操作系统,TCP/IP协议,Visual C+6.0/.NET 3 实验内容与步骤3.1 服务器的开发3.1.1 工程的创建在VC6.0的环境中新建一个名为ChatSever的基于对话框的工程,创建步骤如图1图4所示,并在创建过程的第2步中选中Socket选项(如图3所示)。在生成的工程中设置通信的端口号,本例设为5678,设置方法是在CChatSeverDlg.h头文件的开始处定义一个宏,如下所示:#define iPort 5678图1图2图3图43.1.2 界面的设计将服务器程序的界面设计成如图5所示。图53.1
2、.3 各控件的属性设置给各控件设置属性,如表1所示表1控件类型IDCaption说明按钮IDCANCEL取消退出程序按钮IDC_BTN_SER_OPEN打开服务器打开服务器并使之监听按钮IDC_BTN_SER_CLOSE关闭服务器将服务器关闭按钮IDC_BTN_DISCONNECT断开连接和客户端断开连接按钮IDC_BTN_MSG_SEND发送将编辑框中的文本发送到对方列表框IDC_LIST_MSG显示双方的对话记录文本编辑框IDC_EDIT_MSG输入需要发送的文本3.1.3 给控件映射变量给控件映射变量,具体如表2所示表2控件ID变量类属Category变量类型Variable type变量名Member Variable nameIDC_LIST_MSGControlCListBoxm_list_msgIDC_EDIT_MSGValueCStringm_edit_msg具体的映射过程如下:(1) 右键单击需映射变量的控件,在弹出的菜单中选中ClassWizard选项,如图6所示。(2) 在弹出的对话框的第二个标签页(Member Variables)中选中需映射变量的控件的ID,
3、然后点击右侧的Add Variable按钮,如图7所示。(3) 在弹出的变量设置对话框中,选择变量类属、变量类型,输入变量名称,然后点击OK,如图8所示。图6图7图83.1.4 添加派生类由于我们的程序在通信过程中需要使用MFC CAsyncSocket类进行通信,因此需要在工程中添加一个CAsyncSocket类的派生类,为了以后编程方便,我们将派生类的说明和实现分别放在ChatSeverDlg.h和ChatSeverDlg.cpp文件中,添加过程如下:(1) 点击Insert下的New Class菜单(如图9所示);(2) 在弹出的对话框中作如图10所示的设置,点击图中的Change按钮来设置.h头文件和.cpp实现文件。(3) 在弹出的Change files对话框中点击Browse按钮(如图11所示)。(4) 在弹出的Browse files对话框中选中ChatSeverDlg.h文件(如图12所示)。(5) 重复(3)、(4)两步,将.cpp实现文件设置为ChatSeverDlg.cpp文件。图9图10图11图123.1.5 给CMySocket类添加重载虚拟函数我们给CMy
4、Socket类添加如下几个重载虚拟函数:OnAccept、OnConnect、OnClose、OnSend、OnReceive,添加过程如下:(1) 在类视图中右键单击CMySocket类,在弹出菜单中选择Add Virtual Function项,如图13所示;(2) 在弹出对话框中选中OnAccept并点击右侧的Add and Edit按钮(如图14所示);(3) 重复(1)、(2)两步,添加OnConnect、OnClose、OnSend、OnReceive函数。图13图143.1.6 给CChatSeverDlg类添加成员变量和自定义成员函数一、添加变量我们在CChatSeverDlg类中添加变量:m_listensocket、m_worksocket,变量类型均为CMySocket,访问类型为public,m_listensocket变量(监听套接字)用于监听客户端的连接请求,m_worksocket变量(通信套接字)用于和客户端进行数据接收和发送。添加过程如下:(1) 在类视图中右键单击CChatSeverDlg类,在弹出菜单中点击Add Member Variable,如
《实验6:基于MFC CAsyncSocket类的网络通信》由会员liy****000分享,可在线阅读,更多相关《实验6:基于MFC CAsyncSocket类的网络通信》请在金锄头文库上搜索。
仓前街道北片六村河道保洁项目招标文件
仓前街道污水管网巡查及养护项目招标文件
人民医院快速脑干诱发电位反应仪项目招标文件
人民医院巍山分院CT采购项目招标文件
千年古城复兴一期项目体育场地设施采购项目招标文件
乔司中学物业服务外包项目采购招标文件
“三色预警”河道水质保障服务采购项目招标文件
“甬有碧水”甬新河流域智慧治水人工采集服务项目招标文件
仓前街道2024-2026年余杭塘路以北道路综合养护项目招标文件
美术职业学校2024年物业管理服务项目招标文件
仁和第一幼儿园保安服务外包项目招标文件
人民医院电子内窥镜系统采购项目招标文件
公园区块道路综合养护项目招标文件
仁和第三幼儿园保安服务外包项目招标文件
中心幼儿园2024年物业(保洁及绿化养护)管理服务项目招标文件
工业垃圾打包车及叉车采购(重)招标文件
眼科医院信息化提升项目招标文件
瓶窑镇华兴社区未来社区创建服务采购项目招标文件
新城公园维护Ⅳ标段—2024年新接管公园绿地零星补种项目招标文件
公益中学安保服务项目招标文件
2024-01-03 50页
2024-01-03 57页
2023-12-29 56页
2023-12-19 80页
2023-12-19 371页
2023-12-15 43页
2023-12-15 14页
2023-12-15 30页
2023-12-15 28页
2023-12-15 16页