MFC课程设计报告-聊天室程序设计.doc
文本预览下载声明
河海大学计算机及信息工程学院
MFC课程设计报告
题 目 聊天室程序设计
学 号
专 业
授课班号
学生姓名
指导教师
完成时间
题目:设计一个聊天室系统,实现多人一起聊天。
引言
1.1开发背景
随着网络信息时代的来临,INTERNET应用越来越广泛,人们越来越习惯于在网上获取和交流信息。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。因此我联系所学的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或以上的屏幕分辨率
二.需求分析
用WINSOCK实现简单的网络聊天;
在MFC开发平台上编写一个聊天系统;
得server和client之间可以相互通信;
多人能够发送信息至服务器,首先显示进入聊天室的成员名,然后显示对方名字和聊天信息,可以并发执行。
三、算法分析
建立连接过程流程图如下:
四、详细设计
程序个模块代码如下:
1.客户端
(1)通过AppWizard生成基于对话框的应用程序ChatClient,在向导的第二步选择WindowsSockets的支持,其余步骤均用默认值。
(2)增加一个登录服务器的对话框资源,其ID为IDD_SETUP,然后通过ClassWizard生成对应的基于CDialog的类CSetupDlg。
(3)给对话框CSetupDlg增加3个编辑框,用来输入登录信息(聊天代号、服务器地址以及服务器端口号),
(4)通过ClassWizard生成对应的基于CSocket的类CChatSocket。
(5)给CChatSocket类声明一个主对话框CChatClientDlg指针类型的私有成员变量,其代码如下:
protected:
CChatClientDlg* m_pDlg;
并且在ChatSocket类的头文件开始处增加如下代码:
class CChatClientDlg; //主对话框类
(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-ProcessPendingRead();
}
}
(8)在主对话框ChatClientDlg的头文件中定义ChatSocket指针类型的私有成员变量,其代码如下:
CChatSocket* m_pSocket;
并且在CChatClientDlg类的头文件开始处增加如下代码:
class CChatSocket;//基于CSocket的新类CChatSocket
(9)给对话框CChatClientDlg增加处理接收数据的共有成员函数ProcessPendingRead,其定义如下:
void CChatClientDlg::ProcessPendingRead()//处理接收的数据{
//定义缓冲区
cha
显示全部