网络协议编程上机实验4.doc
文本预览下载声明
《网络协议编程》实验4
1.实验名称
基于MFC winsock类的网络程序的编写与分析。
2.实验目的
(1)进一步熟练掌握基于MFC的简单应用程序的编写方法,理解VC编写的Windows应用程序的运行机制。
(2)熟练掌握CSocket类和CAsyncSocket类的使用方法。
(3)掌握基于MFC winsock类的网络聊天程序的编写方法。
3.实验性质与实验课时
(1)实验性质:验证性。
(2)实验课时:2学时。
4.实验环境UDPChatCSocket.,在Location处选定存放此工程的目录。然后点击OK按钮。
图1
②出现MFC AppWizard设置的第一步对话框(MFC AppWizard – Step 1),如图2所示。从中选择Dialog based(即基本对话框【D】)的应用程序类型,语言支持选择中文(中国),使此工程能够正确地进行中文的输入、输出、显示及处理。然后点击NEXT按钮。
图2
③出现MFC AppWizard设置的第二步对话框(MFC AppWizards – Step 2 of 4),如图3所示,在Windows Sockets复选框上打上选择标记,表示应用程序将支持WinSock套接字。接受其它的默认设置。跳过后面的步骤,直接点击Finsh按钮。
图3
④出现新工程信息对话框(New Project Information),说明了所创建的骨架工程的有关信息。如图4所示。
图4
从中可以看出,所创建的程序是一个基于对话框的Win32应用程序,将自动创建两个类,应用程序类CUDPChatSocketApp,对应的文件是UDPChatSocket.h和UDPChatSocket.cpp;对话框类CUDPChatSocketDlg,对应的文件是UDPChatSocketDlg.h和UDPChatSocketDlg.cpp;支持Windows Socket,使用共享的DLL实现MFC42.DLL。
(2)为对话框界面添加控件对象
在创建了应用程序骨架之后,可以布置程序的主对话框。在MFC界面左方的工作区(workspace)中选择resourceView卡,从中选择Dialog,双击IDD_UDPCHATCSOCKET _DIALOG,右边会出现对话框,左边会出现控件面板,利用控件面板可以方便地在程序的主对话框界面中添加相应的可视控件对象,如图5所示。
图5 在主对话框中添加控件
完成的对话框如图6所示,然后按照表1修改控件的属性。
图6 UDPChatCSocket程序的主对话框
表1 UDPChatCSocket程序主对话框中的控件属性
控件类型 控件ID Caption 组框 group box IDC_STATIC 网络设置信息 静态文本 static text IDC_STATIC_LOCALPORT 本地机端口号: 静态文本 static text IDC_STATIC_REMOTEPORT 远程机端口号: 静态文本 static text IDC_STATIC_NICKNAME 您 的 昵 称: 静态文本 static text IDC_STATIC_REMOTEIP 远程机IP地址: 编辑框 edit box IDC_LocalPort 编辑框 edit box IDC_RemotePort 编辑框 edit box IDC_UserName 编辑框 edit box IDC_RemoteIP 编辑框 edit box IDC_EDITChatMSG 编辑框 edit box IDC_EDITSend 命令按钮 button IDC_Send 发送 (3)为对话框中的控件对象定义相应的成员变量
在窗口菜单中点查看/建立类向导,进入类向导(Class Wizard)对话框,如图6。
图6
选择成员变量卡(Member Variables),用类向导为对话框中的控件对象定义相应的成员变量。确认Class Name是CUDPChatSocketDlg,在左边的列表框中选择一个控件,然后点“Add Variable”按钮,会弹出”Add Member Variable”对话框,如图7所示,然后按照表2输入即可。
图7 增加控件成员变量的对话框
表2 UDPChatCSocket程序对话框中的控件对象对应的成员变量
控件ID
Control IDs 变量名称 Member
Variable Name 变量类别
Category 变量类型
Variable Type IDC_LocalPort m_LocalPort value int IDC_Rem
显示全部