《网络程序设计》实验4_基于MFCCAsyncSocket类的网络通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

教务处制第1页,共17页苏州大学实验报告院、系文正学院年级专业12物理网姓名高成波学号1217443036课程名称网络程序设计成绩指导教师陆建德同组实验者无实验日期实验名称实验四基于MFCCAsyncSocket类的网络通信一.实验内容(要求先完成题目,然后上机验证)本实验利用VisualC++MFCCAsyncSocket类进行网络程序设计。参照实验4讲义示例,完成基于CAsyncSocket类的点到点网络聊天通信程序,并上机调试。要求可以实现本机间以及在同一网络内不同主机之间的通信。实验报告内容包括主要的实验代码、必要的注释或另外的说明文档以及实验结果与分析。ChatClientDlg.cpp#includestdafx.h#includeChatClient.h#includeChatClientDlg.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public:CAboutDlg();//DialogData//{{AFX_DATA(CAboutDlg)enum{IDD=IDD_ABOUTBOX};//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL//Implementation教务处制第2页,共17页protected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)//{{AFX_MSG_MAP(CAboutDlg)//Nomessagehandlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CChatClientDlgdialogCChatClientDlg::CChatClientDlg(CWnd*pParent/*=NULL*/):CDialog(CChatClientDlg::IDD,pParent){//{{AFX_DATA_INIT(CChatClientDlg)m_edit_server=_T();m_edit_msg=_T();//}}AFX_DATA_INIT//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32m_hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME);}voidCChatClientDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CChatClientDlg)DDX_Control(pDX,IDC_LIST_MSG,m_list_msg);DDX_Text(pDX,IDC_EDIT_SEVER,m_edit_server);教务处制第3页,共17页DDX_Text(pDX,IDC_EDIT_MSG,m_edit_msg);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CChatClientDlg,CDialog)//{{AFX_MSG_MAP(CChatClientDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BTN_CONNECT,OnBtnConnect)ON_BN_CLICKED(IDC_BTN_DISCONNECT,OnBtnDisconnect)ON_BN_CLICKED(IDC_BTN_MSG_SEND,OnBtnMsgSend)//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CChatClientDlgmessagehandlersBOOLCChatClientDlg::OnInitDialog(){CDialog::OnInitDialog();//AddAbout...menuitemtosystemmenu.//IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu-AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon教务处制第4页,共17页//TODO:AddextrainitializationhereGetDlgItem(IDC_BTN_CONNECT)-EnableWindow(TRUE);GetDlgItem(IDC_BTN_DISCONNECT)-EnableWindow(FALSE);GetDlgItem(IDC_BTN_MSG_SEND)-EnableWindow(FALSE);GetDlgItem(IDCANCEL)-EnableWindow(TRUE);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCChatClientDlg::OnSysCommand(UINTnID,LPARAMlParam){if((nID&0xFFF0)==IDM_ABOUTBOX){CAboutDlgdlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID,lParam);}}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCChatClientDlg::OnPaint(){if(IsIconic()){CPaintDCdc(this);//devicecontextforpaintingSendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);//CentericoninclientrectangleintcxIcon=GetSystemMetrics(SM_CXICON);intcyIcon=GetSystemMetrics(SM_CYICON);CRectrect;GetClientRect(&rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;//Drawtheicondc.DrawIcon(x,y,m_hIcon);}教务处制第5页,共17页else{CDialog::OnPaint();}}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCChatClientDlg::OnQueryDragIcon(){return(HCURSOR)m_hIcon;}///////////////////////////////////////////////////////////////////////////////CMySocketCMySocket::CMySocket(){}CMySocket::~CMySocket(){}//Donoteditthefollowinglines,whichareneededbyClassWizard.#if0BEGIN_MESSAGE_MAP(CMySocket,CAsyncSocket)//{{AFX_MSG_MAP(CMySocket)//}}AFX_MSG_MAPEND_MESSAGE_MAP()#endif//0///////////////////////////////////////////////////////////////////////////////CMySocketmemberfunctionsvoidCMySocket::OnClose(intnErrorCode){//TODO:Addyourspecializedcodehereand/orcallthebaseclassif(nErrorCode==0){CChatClientDlg*p_Dlg;p_Dlg=(CChatClientDlg*)::AfxGetMainWnd();p_Dlg-close();教务处制第6页,共17页}CAsyncSocket::OnClose(nErrorCode);}voidCMySocket::OnSend(intnErrorCode){//TODO:Addyourspecializedcodehereand/orcallthebaseclassif(nErrorCode==0){CChatClientDlg*p_Dlg;p_Dlg=(CChatClientDlg*)::AfxGetMainWnd();p_Dlg-send();}CAsyncSocket::OnSend(nErrorCode);}voidCMySocket::OnReceiv

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功