- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 91
软件工程设计报告
项目名称:基于JAVA实现的聊天室
项目功能:
新用户的注册
用户登录和退出
聊天服务
在线用户列表
文件传输服务
项目整体设计框图说明:
客户机服务器建立服务器套接字接受请求,建立对等客户机套接字接受消息队列信息,并做处理
客户机
服务器
建立服务器套接字
接受请求,建立对等客户机套接字
接受消息队列信息,并做处理
关闭套接字,保存相关信息
建立客户机套接字
提出请求,与服务器建立连接
发送并接受消息队列信息,并做处理
关闭套接字,保存相关信息
项目分模块设计说明和流程图:
此个项目主要分3个模块:服务器,客户端,文件传输系统
模块主要工能是:客服端发送和接受信息,服务器转发信息,文件传输系统主要是处理文件传送和接受的工作(文件传输是发起端建立文件传输服务器,并把相关信息通过服务器转发给接收方,让接受方与文件传输服务器建立连接,完成文件传输过程)。
此个项目采用JAVA完成,主要的类文件如下:
Chatsever:聊天室的服务器
Chatroom:聊天室的客户端
File_send:文件传输界面,是文件传送和接受的前导
都是组成关系Server:文件传送
都是组成关系
Client:文件接受
Java_list:处理用户列表界面问题
MyCellRenderer:处理用户头像问题
程序处理流程图:
启动服务器
启动服务器
读取用户帐号和密码信息信息表
建立服务器套接字ServerSocket(2950)
侦听客户端连接请求
Accept()
建立线程n和套接字s实现连接
接受客户端信息m
主线程
m为注册信息,对比信息表给客户端回应
判断m是注册信息还是登录信息
m为登录信息,对比信息表,并给予客户端回应
登录成功
登录失败
继续接收信息,判断信息类型
信息是文件传输请求,转发请求
信息是普通聊天消息,判断转发对象,
并且转发消息到指定队列
消息是用户注销退出消息
关闭套接字s,终止线程n
服务器启动过程
关闭各种客服端套接字
关闭各种客服端套接字,终止连接
关闭服务器套接字
释放各种资源
保存读取用户帐号和密码信息信息表
服务器终止过程
启动客服端,与服务器建立连接
启动客服端,与服务器建立连接
发送注册信息
发送登录信息
登录注册界面
接收服务器信息
接收服务器信息
注册成功
注册失败
登录成功
登录失败
聊天界面
提示用户
建立接受信息线程
主线程
接收信息
根据消息决定处理方式
接收用户处理信息
要发送普通聊天消息
要提出文件传送请求
发送信息
文件传输主界面
传输文件过程
结束
客户端启动运行过程
关闭客服端套接字,终止连接
关闭客服端套接字,终止连接
释放各种资源
结束
客户端终止过程
发送用户注销退出消息
文件传输主界面
文件传输主界面
文件传送界面
文件接收界面
选择传送文件
选择存放文件位置和文件名
发送消息:包括文件类型,名字和大小
接收并提取消息:包括文件类型,名字和大小
连续读取文件到字节流
发送字节流
发送完毕流
没有结束
连续接收字节流
将字节流写进文件
接收完毕流
没有结束
关闭文件流和套接字
建立套接字
建立连接
释放各种资源
结束
文件传输系统
程序运行示范截图以及使用说明:
(1).服务器配置文件server.ini,主要记录已注册用户的帐号和密码信息,每2行是一组帐号和密码:
(2).服务器启动窗口,等待客服机的连接:
(3).服务器启动窗口,已有客服机的连接:
(4).客户机配置文件chat.ini,其中第一项是服务器的地址,第二项是用户上次记录的帐号,第三项是密码:
(5).客服机启动,登录界面:
(6)。客服机启动,注册界面:
(7).登录失败提示界面:
(8).注册失败提示界面:
(9).注册成功提示界面:
(10).登录成功进入主界面,最上面是表明当前用户的帐号(昵称)和当前在线人数,最左边是当前在线人员列表,可以选择对谁发消息或者传送文件;最下面3个按键功能分别如上面所写的:
(11).对所有人发送消息:
(12).对所有人发送消息之后,自己界面变化:
(13).对所有人发送消息之后,别人收到信息的界面变化:
(14).对某个人发送消息的界面变化:
(15).别人收到信息之后的界面变化:
(16).对某人(xujin)提出文件传输请求:
(17).选择传送文件窗口:
(18).文件等待传输窗口:
(19).xujin的界面提示用户(徐进,ip为)有文件需要接收的提示窗口:
(20).点击接收,弹出如下提示窗口:
(21).点击确定,弹出文件存储位置选择窗口:
(22).点击保存,弹出文件接收窗口,显示当前接收量的百分比:
(23).文件传送窗口:
(24).文件传送完毕窗口:
关键数据结构及算法:
(1).作
文档评论(0)