《网络协议编程》实验报告单基于winsockAPI函数的MFC网络应用程序分析.doc
《《网络协议编程》实验报告单基于winsockAPI函数的MFC网络应用程序分析.doc》由会员分享,可在线阅读,更多相关《《网络协议编程》实验报告单基于winsockAPI函数的MFC网络应用程序分析.doc(11页珍藏版)》请在三一办公上搜索。
1、实验一报告单班 级_0906101_ 姓 名_贺嵘 _ 学 号_08_ 实验日期_ 评 分_ 教师签名_ 1实验名称基于winsock API与MFC的网络程序的编写与分析。2实验目的(1)进一步熟练掌握常用的WinSock API函数。(2)掌握基于MFC的简单应用程序的编写方法,理解VC编写的Windows应用程序的运行机制。(3)掌握基于WinSock API函数与MFC的网络通信程序的编写方法。3实验地点 一实验楼510机房4实验环境计算机局域网、Visual C+6.05实验性质实验性质:验证性。6实验学时实验课时:2学时。7实验内容(1)基于WinSock API函数和UDP协议的
2、网络通信MFC程序的界面制作。(2)基于WinSock API函数和UDP协议的网络聊天MFC程序的代码编写。(3)聊天程序在局域网中两台不同电脑上的测试。(4)聊天程序在同一台电脑上的测试。(5)聊天程序核心代码分析说明。8实验步骤(1)基于WinSock API函数和UDP协议的网络通信MFC程序的界面制作。在Visual C+6.0中,利用MFC AppWizardexe新建一个工程,自拟工程名称,并注意设置该工程的保存位置(如图1所示),选择应用程序类型为“基本对话框”(如图2所示,并注意选中WOSA支持(如图3所示),其余采用默认。 图1 图2图3在得到的工程的对话框资源上,放置两个
3、文本控件,两个命令按钮,一个框架控件并修改各控件的属性和布局如图4所示。 图4(2)基于WinSock API函数和UDP协议的网络聊天MFC程序的代码编写。WyChat.h的主要代码如下:class CWyChatApp : public CWinApppublic:CWyChatApp(); CWyChatApp(); /添加的析构函数,便于WinSock函数库的注销/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CWyChatApp)public:virtual BOOL InitInst
4、ance();/AFX_VIRTUAL/ Implementation/AFX_MSG(CWyChatApp)/ NOTE - the ClassWizard will add and remove member functions here./ DO NOT EDIT what you see in these blocks of generated code !/AFX_MSGDECLARE_MESSAGE_MAP();WyChat.cpp的主要代码如下:CWyChatApp:CWyChatApp() /析构函数 WSACleanup(); /注销WinSock函数库/ The one a
5、nd only CWyChatApp objectCWyChatApp theApp;/ CWyChatApp initializationBOOL CWyChatApp:InitInstance() /在初始化函数中注册WinSock函数库/if (!AfxSocketInit()/AfxMessageBox(IDP_SOCKETS_INIT_FAILED);/return FALSE;/ WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup(
6、wVersionRequested, &wsaData );if ( err != 0 ) return FALSE;if ( LOBYTE( wsaData.wVersion ) != 2 | HIBYTE( wsaData.wVersion ) != 2 ) WSACleanup( );return FALSE; AfxEnableControlContainer();WyChatDlg.h的主要代码如下:#define MSG_SOCK WM_USER+1 /自行定义的WinSock套接字消息编号/ CWyChatDlg dialogclass CWyChatDlg : public C
7、Dialog/ Constructionpublic:CWyChatDlg(CWnd* pParent = NULL);/ standard constructor CWyChatDlg(); /自行添加的对话框析构函数/ Dialog Data/AFX_DATA(CWyChatDlg)enum IDD = IDD_WYCHAT_DIALOG ;/ NOTE: the ClassWizard will add data members here/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CWyC
8、hatDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CWyChatDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCU
9、RSOR OnQueryDragIcon();afx_msg void OnSend();/AFX_MSG afx_msg void OnSock(WPARAM,LPARAM); /自行添加的套接字响应函数DECLARE_MESSAGE_MAP()private:SOCKET m_socket; /自行定义的私有套接字成员变量public:BOOL InitSocket(); /自行定义的套接字初始化函数;WyChatDlg.cpp的主要代码如下:CWyChatDlg:CWyChatDlg() /自行添加的析构函数 if(m_socket)closesocket(m_socket); /关闭套
10、接字BEGIN_MESSAGE_MAP(CWyChatDlg, CDialog)/AFX_MSG_MAP(CWyChatDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDSEND, OnSend)/AFX_MSG_MAP ON_MESSAGE(MSG_SOCK,OnSock) /自行添加的消息关联END_MESSAGE_MAP()/ CWyChatDlg message handlersBOOL CWyChatDlg:OnInitDialog()CDialog:OnInitDialog();/ Add
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络协议编程 网络 协议 编程 实验 报告 基于 winsockAPI 函数 MFC 应用程序 分析
链接地址:https://www.31ppt.com/p-2389407.html