最为常见网络聊天室编写源码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络聊天室
1 需求分析
1.1 系统概述
在互联网迅速发展的今天,由于网络聊天室的即时通讯特点能够充分体现网络互联的优势,因此已经成为互联网上不可缺少的一部分。本系统实现了网络聊天室的基本功能,系统由服务器和客户端两部分组成,用户通过客户端登录到服务器后,可以与其他登录到服务器的用户聊天,也就是说,用户可以在聊天室内发表言论,并且彼此之间能够看到对方的谈话。
1.2 系统运行环境
1.硬件环境
●处理器:Inter Pentium 166 MX或更高
●内存:32M以上
●硬盘空间:1GB
●显卡:SVGA显示适配器
2.软件环境
●操作系统:Windows 98/ME/2000/XP
1.3 功能需求描述
网络聊天室的总体目标是为网络用户提供一个方便易用的即时通讯工具。
需要实现以下一些基本功能:
1. 消息发送:用户可以发送消息给聊天室里所有的或者指定的其他用户。
2. 消息接收:用户可以接收到其他用户发送给他的消息。
3. 聊天室管理功能:聊天室管理员可以启动或者关闭聊天室服务,并且对于违反聊天室规则的用户可以强制其离开聊天室。
2 总体设计
2.1 开发与设计的总体思想
网络聊天室作为网络多用户软件,其界面操作的方便性、稳定性和服务器的性能是决定软件质量的首要条件,所以这几方面应该作为开发与设计的重点。
系统采用结构化的设计方法进行设计,采用快速开发平台Delphi 6进行开发。
2.2 系统模块结构图
依据需求分析结果,网络聊天室主要分成两个模块。如图2-1所示。
图2-1 系统模块结构图
2.3 模块设计
1.服务器模块
服务器模块主要完成接收并处理用户登录申请,转发登录用户发送的消息、启动聊天服务、关闭聊天服务和踢开指定用户功能。该模块应包括三个子功能模块:处理用户登录申请功能、转发用户消息功能、聊天室管理功能。模块功能树如图2-2所示。
图2-2 服务器模块功能树图
2.客户端模块
客户端模块为用户提供聊天室操作界面,用户通过客户端可以发送消息给全部或指定的其他用户,可以看到聊天内容,可以看到聊天室内有哪些用户在线。客户端模块功能树如图
2-3所示。
图2-3 客户端模块功能树图2.4 系统流程描述
系统主体的处理流程如图2-4所示。
图2-4 系统主体处理流程图
系统客户端和服务器的主体处理流程如图2-5和图2-6所示。
图2-5 客户端处理流程图
图2-6 服务器处理流程图
2.5 界面设计
界面设计应遵循简洁美观、方便易用的基本原则。
1.服务器界面设计
具体服务器界面设计效果图如图2-7所示。
图2-7 服务器界面设计效果图
2.客户端界面设计
登录界面设计效果图如图2-8所示,客户端主体界面设计效果图如图2-9所示。
图2-8 客户端登录界面设计效果图
图2-9 客户端界面设计效果图
3 详细设计
基于系统需求分析与系统总体设计的结论,本系统采用Delphi 7实现各模块的功能,下面按照模块的划分来分别阐述系统的详细设计和实现过程。
3.1 服务器模块
1.功能描述
接收并处理客户端的登录请求,并根据客户端的聊天请求向指定客户端转发聊天内容,同时提供聊天室用户管理和服务管理功能。
2.IPO图
输入:客户端请求消息
处理:
①启动服务器服务;
②等待接收客户端请求;
③根据客户端请求类型,做不同处理;
④将处理结果发送给客户端。
输出:发给客户端的应答消息
3.函数/过程设计
过程1:startClick ()
声明:procedure TdmMain.startClick(Sender: TObject);
功能:启动服务器的聊天服务。
IPO图:
输入:无
处理:
①判断服务器服务进程状态,如果服务已经启动则过程结束,否则进入下一步;
②设置服务器服务进程的Socket端口号为2345;
③启动服务器服务进程;
④在界面显示服务启动提示信息。
输出:服务器启动信息
程序清单:
procedure TdmMain.startClick(Sender: TObject);
begin
if ServerSocket_Chat.Active=false then
begin
//设置服务器服务进程的Socket端口号
ServerSocket_Chat.Port:=2345;
//启动服务器服务进程
ServerSocket_Chat.Active :=true;
//在界面显示服务启动提示信息
ServerStatus.Lines.add(datetostr(date)+' '
+timetostr(time)+':'+'服务启动');
end
end;
过程2:stopClick ()
声明:procedure TdmMain.stopClick(Sender: TObject);
功能:关闭聊天室聊天服务。
IPO图:
输入:无。
处理:
①判断服务器服务进程状态,如果服务已经关闭则过程结束,否则进入下一步;
②关闭服务器服务进程;
③在界面显示服务关闭提示信息。
输出:聊天室关闭信息
程序清单:
procedure TdmMain.stopClick(Sender: TObject);
begin
if ServerSocket_Chat.Active=true then
begin
//关闭服务器服务进程
ServerSocket_Chat.Active :=false;
//在界面显示服务关闭提示信息
ServerStatus.Lines.add(datetostr(date)+' '
+timetostr(time)+':'+'关闭');
end
end;
过程3:ServerSocket_ChatClientRead ()
声明:procedure TdmMain.ServerSocket_ChatClientRead(Sender: TObject;