ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:142.10KB ,
资源ID:16364753      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16364753.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络聊天室Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络聊天室Word下载.docx

1、图2-1 系统模块结构图2.3 模块设计1.服务器模块服务器模块主要完成接收并处理用户登录申请,转发登录用户发送的消息、启动聊天服务、关闭聊天服务和踢开指定用户功能。该模块应包括三个子功能模块:处理用户登录申请功能、转发用户消息功能、聊天室管理功能。模块功能树如图2-2所示。图2-2 服务器模块功能树图2.客户端模块客户端模块为用户提供聊天室操作界面,用户通过客户端可以发送消息给全部或指定的其他用户,可以看到聊天内容,可以看到聊天室内有哪些用户在线。客户端模块功能树如图2-3所示。图2-3 客户端模块功能树图2.4 系统流程描述系统主体的处理流程如图2-4所示。图2-4 系统主体处理流程图系统

2、客户端和服务器的主体处理流程如图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.功能描述接收并处理客

3、户端的登录请求,并根据客户端的聊天请求向指定客户端转发聊天内容,同时提供聊天室用户管理和服务管理功能。2.IPO图输入:客户端请求消息处理: 启动服务器服务; 等待接收客户端请求; 根据客户端请求类型,做不同处理; 将处理结果发送给客户端。输出:发给客户端的应答消息3.函数/过程设计过程1: startClick ()声明:procedure TdmMain.startClick(Sender: TObject);功能:启动服务器的聊天服务。IPO图:无 判断服务器服务进程状态,如果服务已经启动则过程结束,否则进入下一步; 设置服务器服务进程的Socket端口号为2345; 启动服务器服务进程

4、; 在界面显示服务启动提示信息。服务器启动信息程序清单:begin if ServerSocket_Chat.Active=false then begin /设置服务器服务进程的Socket端口号 ServerSocket_Chat.Port:=2345; /启动服务器服务进程 ServerSocket_Chat.Active :=true; /在界面显示服务启动提示信息ServerStatus.Lines.add(datetostr(date)+ +timetostr(time)+:+服务启动); endend;过程2:stopClick ()procedure TdmMain.stopC

5、lick(Sender:关闭聊天室聊天服务。无。 判断服务器服务进程状态,如果服务已经关闭则过程结束,否则进入下一步; 关闭服务器服务进程; 在界面显示服务关闭提示信息。聊天室关闭信息 if ServerSocket_Chat.Active=true then /关闭服务器服务进程=false; /在界面显示服务关闭提示信息关闭过程3: ServerSocket_ChatClientRead ()procedure TdmMain.ServerSocket_ChatClientRead(Sender: TObject; Socket: TCustomWinSocket);接收并处理客户端请求。

6、无 获取客户端发送的请求消息; 解析请求消息; 根据请求消息类型做不同的应答处理。各项游戏初始化数据。var strReceive,strCom,strContent,strNick,strFriend:string; n,i:integer; newItem:TListItem; /获取客户端发送的请求消息 strReceive:= Socket.ReceiveText; /解析请求消息 n:=pos(,strReceive); if n0 then /获取请求指令类型 strCom:=copy(strReceive,1,n-1); /处理客户端的广播聊天请求 if strCom=publi

7、c then /publiccontent /获取聊天内容 strContent:=copy(strReceive,n+1,length(strReceive)-n); /构造消息应答,并将应答消息发送给所有在线客户端 for i:=0 to ServerSocket_Chat.Socket.ActiveConnections-1 do ServerSocket_Chat.Socket.Connectionsi.SendText(talk+strContent); end; /处理客户端的私聊请求private then /privatenicknickcontent /获取请求内容 /获取消

8、息发送者昵称 strNick:= copy(strContent,1,pos(,strContent)-1);=copy(strContent,pos(,strContent)+1,length(strContent)-pos(,strContent); /获取消息接收者昵称 strFriend: /获取消息内容 /构造消息应答,并将应答消息发送给消息接收者 if UserList.Items.Itemi.Caption = strFriend then /处理客户端的登录服务器请求request then /requestnick /获取登录用户昵称 /检查是否存在重名用户,如果有则返回错误

9、应答消息= 0 to UserList.Items.Count -1 do if UserList.Items.Itemi.Caption = strNick then ServerSocket_Chat.Socket.ConnectionsUserList.Items.Counterr+strNick); exit; /将登录用户添加到在线用户列表 newitem:=UserList.Items.insert(UserList.Items.count); newitem.caption:=strNick; newitem.SubItems.Add(socket.RemoteAddress);

10、 newitem.SubItems.Add(socket.RemoteHost); AllUserList:=AllUserList+strNick; /向所有在线用户广播用户登录消息add+AllUserList+过程4:ServerSocket_ChatClientDisconnect ();procedure TdmMain.ServerSocket_ChatClientDisconnect(Sender:处理用户离开情况。 在用户列表中删除离开用户; 重新构造在线用户名单; 向所有在线用户广播用户离开指令和在线用户名单。var i: isDel:boolean; /清空在线用户名单=;

11、 /在用户列表中删除离开用户=0 to UserList.Items.count -1 do if not isDel then if socket.RemoteAddress=UserList.Itemsi.subitems0 then= UserList.Itemsi.caption; UserList.Items.Itemi.Delete(); /重新构造在线用户名单+ UserList.Itemsi.caption; /向所有在线用户广播用户离开指令和在线用户名单del+strNick+AllUserList+过程5:KickClick ()procedure TdmMain.Kick

12、Click(Sender:将管理员指定用户从聊天室中踢开。 判断当前是否选中需要踢开的用户; 如果有选中的用户,将选中用户的Socket连接关闭; /判断当前是否选中需要踢开的用户 if UserList.ItemIndex=0 then /将选中用户的Socket连接关闭 ServerSocket_Chat.Socket.ConnectionsUserList.ItemIndex.Close;3.2 客户端模块为聊天用户提供聊天操作界面,主要是向服务器发送聊天请求,并根据服务器的应答进行不同的处理。用户操作 登录聊天室服务器; 根据聊天要求构造请求消息,并向服务器发送; 解析服务器的应答消息

13、,并进行相应处理。提示消息和聊天内容 bnt_loginClick ()procedure TMainForm.bnt_loginClick(Sender:登录聊天室服务器。 启动登录窗口,等待用户输入服务器IP地址和用户昵称; 初始化Socket通讯配置; 建立Socket连接。 /创建并显示登录窗口 if login = nil then login := TLogin.Create(nil); login.ShowModal; /当用户选择登录后,根据用户设置的服务器IP地址和昵称登录服务器 if login.isOk then /设置聊天室服务器服务的Socket端口号 clients

14、ocket1.Port: /设置聊天室服务器服务的IP地址 clientsocket1.host:=login.Edit1.Text; /建立Socket连接 clientsocket1.active: MyName:= login.Edit2.Text ClientSocket1Connect ()procedure TMainForm.ClientSocket1Connect(Sender: Socket:向聊天室服务器发送登录请求。 向聊天室服务器发送登录请求; 等待服务器应答。登录请求消息 /向聊天室服务器发送登录请求 clientsocket1.Socket.SendText(req

15、uest+MyName); ClientSocket1Read ()procedure TMainForm.ClientSocket1Read(Sender:Socket:接收服务器应答消息,并进行处理。应答消息 获取服务器应答消息; 解析应答消息; 根据应答消息类型进行处理。var strReceive,strCom,strContent,strUser: /获取服务器应答消息=socket.ReceiveText; /解析应答消息=copy(strReceive,1,pos(,strReceive)-1); strUser: /根据应答消息类型进行处理 /应答消息为新用户进入聊天室 the

16、n /重新构造用户列表 UserList.Clear; UserList.Items.Add(大家 UserList.ItemIndex:=0;=copy(strReceive,pos(,strReceive)+1,length(strReceive)-pos(,strReceive); repeat=copy(strContent,1,pos( UserList.Items.Add(strUser); until strContent= /更新聊天室聊天内容 Chat_Content.Lines.Add(UserList.Items.StringsUserList.Items.count-1

17、+进来了,大家欢迎! /应答消息为用户离开聊天室del /更新聊天室用户列表 /更新聊天室内容 Chat_Content.Lines.Add(strUser+离开了. /应答消息为聊天内容talk /更新聊天室内容显示 Chat_Content.Lines.Add(strContent); /应答消息为登录错误 err /提示用户错误 showmessage(这个昵称已经存在,请换一个登录!=inputbox(重新输入,请输入昵称大力水手 until trim(strUser) /重新发送登录请求+strUser); sendClick ()procedure TMainForm.sendClick(Sender:向聊天室服务器发送聊天内容转发请求。聊天内容 检查发送消息内容是否为空; 根据用户选择的聊天对象,向聊天室服务器发送广播请求; 如

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1