欢迎来到天天文库
浏览记录
ID:41054379
大小:88.50 KB
页数:12页
时间:2019-08-15
《聊天室程序VC-MFC》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《网络程序设计》课程设计报告书题目:简单的聊天程序专业:网络工程-11-题目:简单的聊天程序本题是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。本实例程序的技术要点是:l如何从CasyncSocket类派生出自己的WinSock类。l理解WinSock类与应用程序框架的关系。l重点学习流式套接字对象的使用。l处理网络事件的方法。它是基于SOCKET的局域网通信是一种灵活的
2、、易于实现的、低成本的方法。在SOCKETAPI的帮助下,开发基于SOCKET的局域网通信软件也是易于实现的。一、设计内容1、设计目的 综合运用本课程及计算机网络的相关知识设计并实现一个网络应用程序,以VisualC++作为开发平台,通过实践复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力。2、设计要求采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。其既是服务器又是客户端,在两台计算机上运行。二、设计原理通过socket()系统调用创建一个Socket数组后
3、(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将目的地址赋给这个Socket。Socket聊天室基本原理是,抛开CGI(公共网关接口)和www服务器,根据html规范,接收到浏览器的请求以后,模仿www服务器的响应,将聊天内容发回浏览器。在浏览器看来就像浏览一个巨大的页面一样始终处于页面联接状态,这就是一个专门的聊天服务器,一个简化了的www服务器。-11-三、设计过程1、程序设计流程及源代码(1)流程图客户端客
4、户端目的IP地址发送消息发送消息目的IP地址(2)源代码//ChatDlg.cpp:implementationfile//#include"stdafx.h"#include"Chat.h"#include"ChatDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif/////////////////////////////////////////////////////////////////////
5、//////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public:CAboutDlg();//DialogData//{{AFX_DATA(CAboutDlg)-11-enum{IDD=IDD_ABOUTBOX};//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtualvoidDoDataExchan
6、ge(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExch
7、ange*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()///////////////////////////////////////////////////////////////////////
8、////////CChatDlgdialogCChatDlg::CChatDlg(CWnd*pParent/*=NULL*/):CDialog(CChatDlg::IDD,pParent){//{{AFX_DATA_INIT(CChatDlg)//NOTE:th
此文档下载收益归作者所有