预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

MFC套接字编程上机指导 实验目的 熟悉AsyncSocket类的普通成员函数和事件成员函数; 理解Windows系统下,VC++的消息编程机制; 学会运用AsyncSocket类进行MFC套接字编程。 实验内容 利用AsyncSocket类设计一个基于UDP协议传输数据的MFC应用程序,实现如图1中两个网络程序间的通信。 (b) 图1a、b两个网程序间的通信 实验步骤 创建MFC工程 打开VC++6.0,点击“文件”→“新建”,打开“新建”对话框,如图2所示。 图2“新建”对话框 选择,并在工程名称中输入工程名称“AsyncSocketEx”点击确定按钮,打开“MFC应用程序向导步骤1”对话框,如图3所示。 图3“MFC应用程序向导步骤1”对话框 选择“您要创建的应用程序类型是:”中的“基本对话框[D]”,点击“下一步”按钮,打开“MFC应用程序向导步骤2共4步”对话框,如图4所示。 图4“MFC应用程序向导步骤2共4步”对话框 选择“您希望包含WOSA支持吗?”中的“WindowsSockets[W]”,点击“下一步”按钮,打开“MFC应用程序向导步骤3共4步”对话框,如图5所示。 图5“MFC应用程序向导步骤3共4步”对话框 点击“下一步”按钮,打开“MFC应用程序向导步骤4共4步”对话框,如图6所示。 图6“MFC应用程序向导步骤4共4步”对话框 点击“完成”按钮,弹出“新建工程信息”对话框,如图7所示,点击“确定”按钮。这样一个新的MFC工程就已经创建好了,如图8所示。 图7“新建工程信息”对话框 图8新建的AsyncSocketEx工程示意图 向AsyncSocketEx工程中添加MFC控件 本程序主要涉及到的控件有CStatic控件、CEdit控件、CButton控件、CIPAddress控件。CStatic控件在控件工具栏中显示为,它主要用于在对话框中显示静态的文本。CEdit控件在控件工具栏中显示为,它主要是用于向对话框输入数据以及动态的显示数据。CButton控件在控件工具栏中显示为,它主要用于创建各种按钮。CIPAddress控件在控件工具栏中显示为,它主要是用于向程序输入IP地址以及获取IP地址。以上四种控件的详细信息及使用方法请参考MSDN。 删除默认的控件:将图8中默认对话框中的“TODO:在这里设置对话控制。”静态控件、“确定”按钮、取消按钮删除。 添加静态控件CStatic控件:如图9中所示。注意:请添加自己的班级、学号和姓名。 图9添加静态控件CStatic控件 添加IP地址控件CIPAddress控件,该控件的图示为: 添加本机IP地址控件:首先,选中本机IP地址控件,按回车键打开其属性框,弹出图10所示的对话框,将其ID改为“IDC_IPADDRESS_HOST”,之后关闭该对话框。然后,右击鼠标,选择“建立类向导”选项打开“MFCClassWizard”对话框,选择“MemberVariables”选项卡,选中IDC_IPADDRESS_HOST点击“AddVariable…”按钮,添加类型为CIPAddressCtrl,变量名为m_IPAddress_Host的成员变量。如图11所示。点击“确定”按钮。 图10修改本机IP地址控件ID 图11添加成员变量m_IPAddress_Host 以同样的方式添加添加远程IP地址控件,其ID设为IDC_IPADDRESS_REMOT,类型为CIPAddressCtrl,变量名为m_IPAddress_Remot。 添加CEdit控件,所用方法同3)中的类似,空间的ID,类型,变量名如下表所示: 表1CEdit控件相关设置 用途ID类型变量名本机端口编辑框IDC_EDT_HOSTPORTintm_HostPort远程端口编辑框IDC_EDT_REMOTPORTintm_RemotePort接收数据编辑框IDC_EDT_RECVFROMCStringm_ReceiveData发送数据编辑框IDC_EDT_SENDTOCStringm_SendData设置接收数据编辑框的属性值,如图12所示。 图12接收数据编辑框的属性设置 设置发送数据编辑框的属性值,如图13所示。 图13发送编辑框的属性设置 添加三个CButton控件,控件的用途、ID、标题如下表所示。 表2CButton控件相关设置 用途ID标题初始化创建套接字对象IDC_BTN_INIT初始化发送数据IDC_BTN_SENDTO发送退出程序IDC_BTN_EXIT退出设置发送按钮的属性值,在其属性对话框的样式中,将“缺省按钮”打勾,这样,发送按钮可以响应回车键。 添加完各种控件后的对话框如图14所示。 图14完成添加控件后的对话框 初始化IP地址控件(CIPA