- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程设计报告
项目名称:基于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”,“$1”,“$2”,“$3”......为头的数据加工方式,即每条信息都是以此格式为标准的,所不管是服务器或者客服端接收的到的字节流信息(具体文件传输过程除外),都要把其转化为字符串,然后取前2
您可能关注的文档
- 毕业论文(设计)基于JAVA在线考试系统的设计与实现.doc
- 毕业论文(设计)基于java的出租车管理系统.doc
- 毕业论文(设计)基于Java+Me的手机游戏.doc
- 毕业论文(设计)基于Java的简单网络聊天室编程.doc
- 毕业论文(设计)基于工作过程的Java程序设计源代码.doc
- 毕业论文(设计)基于Java的日历记事本.doc
- 毕业论文(设计)基于JavaME的游戏开发.doc
- 毕业论文(设计)基于JAVA的图书借阅管理系统-.doc
- 毕业论文(设计)基于单片机的水温自动控制系统.doc
- 毕业论文(设计)基于java的在线作业提交点评系统设计与实现.doc
- 毕业论文(设计)基于C#的即时通讯软件设计与实现毕业论文.doc
- 毕业论文(设计)基于Java计算器小软件设计.doc
- 毕业论文(设计)基于Java的英山中学教职工工资.doc
- 毕业论文(设计)基于SSH网上笔记本销售的设计与实现.doc
- 毕业论文(设计)基于JAVACS远程监控系统软件的实现.doc
- 毕业论文(设计)基于ZigBee和USB的无线传输平台设计.doc
- 毕业论文(设计)基于JAVA的俄罗斯方块游戏开题报告和英文翻译.doc
- 毕业论文(设计)基于Java的图书馆管理系统.doc
- 毕业论文(设计)基于javaweb校园论坛的设计与实现.doc
- 毕业论文(设计)基于Java的房产信息网站的设计与实现.doc
最近下载
- 制定手机使用协议书.docx VIP
- 隐形矫正培训课件.pptx VIP
- 2025年高考化学一轮复习:物质的分类及转化(讲义)解析版.pdf VIP
- 2023中华护理学会团体标准-老年人误吸的预防.pptx VIP
- 《Rubis软件2017版》操作手册.pdf VIP
- 标准图集-08CJ17快速软帘卷门 透明分节门 滑升门 卷帘门.pdf VIP
- 消化内科-病历讨论.pptx VIP
- (⼈教2019版)化学 选必1 第三单元 水溶液中的离子反应与平衡 大单元教学设计.docx
- SHT 3525-2015 石油化工低温钢焊接规范.pdf VIP
- Q/CRRC J26-2018- 轨道交通装备产品禁用和限用物质.pdf VIP
文档评论(0)