1、 MFC 课程设计报告课程设计报告 题 目 聊天室程序设计 学 号 专 业 计算机科学与技术 授课班号 学生姓名 指导教师 完成时间 2008.12.30 题目:设计一个聊天室系统,实现多人一起聊天。题目:设计一个聊天室系统,实现多人一起聊天。 一一. . 引言引言 1.1 开发背景 随着网络信息时代的来临,INTERNET 应用越来越广泛,人们 越来越习惯于在网上获取和交流信息。 据调查显示,80%以上的人上网 都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。使用网 上聊天已经成为现代年轻人一种新的交往方式。 聊天室更适合于陌生 人之间进行较为主观、 感兴化的讨论。所以有大部分的人会进
2、入聊天 室聊天, 它会给人一个完全自由的聊天世界。 因此我联系所学的 MFC 知识,决定做一个简易的聊天室程序。 1.2 开发环境以及运行环境 1.2.1 开发环境 Intel Pentium 4 2.0GHz,512M 内存,80G 硬盘 Microsoft Windows XP Professional Microsoft Visual C+ 6.0 1.2.2 运行环境 Intel Pentium 2 及以上处理器,32M 以上内存,4G 以上硬盘 Microsoft Windows XP 操作系统 800*600 或以上的屏幕分辨率 二需求分析二需求分析 1、 用 WINSOCK 实现
3、简单的网络聊天; 2、 在 MFC 开发平台上编写一个聊天系统; 3、 得 server 和 client 之间可以相互通信; 4、多人能够发送信息至服务器,首先显示进入聊天室的成员名, 然后显示对方名字和聊天信息,可以并发执行。 三三、算、算法法分析分析 建立连接过程流程图如下: Server端Client端 创建CClientSocket 对象,在某个端口 提供监听服务 等待来自Client 端的服务请求 接受Client端的请 求,用返回的 CClientSocket建立 连接 向用 CClientSocket连 接建立的流中读 写数据 关闭CClientSocket, 结束与当前Cli
4、ent的 通信,等待其他请求 关闭CClientSocket对 象,结束监听服务 创建CChatSocket对 象,向Server的监听 端口发出请求 向用CChatSocket 连接建立的流中读 写数据 关闭 CChatSocket,结 束与当前Server端 的通信 建立连接 拆除链路 数据通路 四四、详细设计、详细设计 程序个模块代码如下:程序个模块代码如下: 1.客户端 (1)通过 AppWizard 生成基于对话框的应用程序 ChatClient,在向导的第二 步选择 WindowsSockets 的支持,其余步骤均用默认值。 (2)增加一个登录服务器的对话框资源,其 ID 为 ID
5、D_SETUP,然后通过 ClassWizard 生成对应的基于 CDialog 的类 CSetupDlg。 (3)给对话框 CSetupDlg 增加 3 个编辑框,用来输入登录信息(聊天代号、服 务器地址以及服务器端口号) , (4)通过ClassWizard 生成对应的基于 CSocket 的类 CChatSocket。 (5)给 CChatSocket 类声明一个主对话框 CChatClientDlg 指针类型的私有成 员变量,其代码如下: protected: CChatClientDlg* m_pDlg; 并且在 ChatSocket 类的头文件开始处增加如下代码: class CC
6、hatClientDlg; /主对话框类 (6)给 ChatSocket 类重载一个构造函数,其定义如下: CChatSocket:CChatSocket(CChatClientDlg* pDlg) m_pDlg = pDlg; 并且在 ChatSocket 类的 CPP 文件开始处增加如下语句: #include “ChatClientDlg.h“ (7)通过 ClassWizard 响应类的 ChatSocket 的 OnReceive 函数,表示可以接 收数据了,其代码如下: /通知客户端可以接受数据 void CChatSocket:OnReceive(int nErrorCode) CSocket:OnReceive(nErrorCode); if(m_pDlg) PlaySound(“F:msg.wav“,NULL,SND_ASYNC|SND_NODEFAULT); m_pDlg-