聊天室
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章需求分析
第一节项目概述
1.1.1 产品描述
人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上聊天室,个人用户可以通过网上聊天室进行与其他用户的通信。
该网路聊天室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择,和许多大型的网络聊天室相比该网络聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由注册界面、登录界面、聊天室界面、等构成。整个设计简洁明了、实用,使用简单。
1.1.2产品功能
本项目具有以下主要功能:
(1)客户端:
➢用户注册功能,实现用户的账号注册和信息填写,并写入已存在的文本文档中。
➢用户登入功能,实现合法注册用户的登入。
➢群聊功能,实现用户和在线的所有用户聊天。
➢私聊功能,实现用户和在线的用户一对一的聊天。
➢保存聊天记录,实现聊天记录的保存。
➢查看聊天记录,实现用户查看已保存的聊天内容。
➢发送表情和设置聊天内容字体,更改字体颜色,样式。
➢更换皮肤颜色,实现皮肤颜色的改变。
➢恢复皮肤颜色,实现皮肤颜色变为开始颜色。
图 1.1 客户端结构图(2)服务端:
➢可以不断的监听客户端请求
➢显示登入客户的名称
➢随时发送系统消息
➢踢除某个用户
图 1.2服务器结构图
第二节功能需求a)用户注册
用户首先需要注册用户,将用户信息写入user的文本文档中,记录用户注册的信息。
➢向服务器端发送请求
➢服务器端响应客户端,客户端弹出注册信息表
➢用户填写完成后提交将注册信息与user.txt中的记录比较
➢返回给客户端是否可以申请成功
b)用户登录
用户输入账号和密码,如果输入的账号和密码与用户注册的账号和密码相同,用户将进入用户聊天界面,否则弹出对话框提示用户输入错误。向服务器请求连接,并发送登陆信息
➢服务器处理并查询user.txt中的内容是否正确
➢返回客户端一个响应,提示登录成功,弹出聊天室主界面
➢刷新在线用户的用户列表信息
➢如果发生异常将对异常进行处理
c)群聊
用户在聊天室界面的发言内容,聊天室的其他在线用户可以正常接收并且正
确显示(包括发送的表情和用户设置的字体颜色)。
d)私聊
用户可以选择聊天室的在线用户列表中其它用户聊天,双方聊天的消息对于
聊天室的其它用户是不可见的。
➢客户端与服务器端建立通讯
➢客户端将用户发送的消息打包传送给服务器
➢服务端进行数据分析,查找用户名,并将消息床送给该用户
➢用户受到消息后显示
e)发送表情
用户选择不同的表情发送到不同的用户。
➢客户端与服务器端建立连接
➢在下拉列表框中选择要发送的图片,
➢客户端将表情所表示的信息传送给所要发送的用户
➢用户进行显示表情
f)聊天记录
用户选择是否保存聊天记录,如果保存将把聊天记录存入登录用户的
名字_message文本文档中。
➢发送和接受到的信息显示在ChatRoom类,txtPane上的文本进行选择保存➢当选择保存了聊天记录后,聊天记录将被保存
➢如果未选择聊天记录,聊天记录将不会被保存
g)系统消息
服务器端可以随时发送消息,并且客户端无条件接收。
➢服务器像所有在线用户发送消息
➢客户端接收到消息,进行消息显示
h) 字体属性设置
用户改变输入消息的字体和颜色。
➢服务器可以自动选择发送字体的颜色和样式
➢只有用户所在的面板颜色改变
➢发送到对方的面板的消息样式不改变
i)退出
用户正常退出服务器
➢用户选择推出按钮
➢服务器端显示用户推出消息
➢客户端用户在线列表进行刷新
第二章系统设计与实现
网络聊天室涉及的一个服务器和N个客户端,客户端向服务器发送请求,服务器对请求作出响应。客户尝试与服务器建立连接,一旦连接建立起来,客户和服务器就可以通过套接字进行通信。
第一节服务器设计
服务器端是整个聊天室的主要部分,它包含了客户端接入以及处理其发出请求的一系列方法,是整个聊天室的核心,客户发送的信息也室通过服务器发送到其他用户的。
2.1.1 服务器设计思想
作为服务器端的设计,需要考虑到服务器端的一下几个问题:
(1)安全性
服务器的安全性包括两部分,一是服务器本身硬件配置上的安全性,例如防止系统漏洞;二是服务器和客户端通讯协议的安全性设计,防止通过协议本身导致服务器被非法攻击等。
(2)性能的可线性提高
这主要指服务器的服务能力可以通过增加线程的方式提供性能,这要求服务器的服务能力分担室均衡的,即实现良好的负载平衡。
(3)服务器的稳定性
网络聊天室系统服务器端的稳定性是十分重要的,服务器的稳定可以保证多用户间的正常通信。
2.1.2 服务器端各主要类的定义及其功能
ChatServer这个类室是服务器端程序运行的入口,定义了ServerSocket类获取可客户端的信息。服务器端的端口号10000,服务器端一直等待客户端的请求一直监听,使用while(True)循环运行。ChatServerFrame类定义了服务器的