版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
闲聊室
一、引言
本文围绕Java编程语言在网络编程方面的详细应用,论述了运用面对对象
方法,对计算器程序进展需求分析、概要设计、详细设计,最终运用Java编程
实现的全过程。在编程我们运用的java语言,是目前比拟流行的编程语言。在
当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好
的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得
到了广泛的应用。
二、需求分析
2.1开发背景:
在网络越来越兴盛的今日,人们对网络的依靠越来越多,越来越离不开网络,由此
而产生的闲聊工具越来越多,网络闲聊时一类的闲聊系统的开展日新月异,因此
产生了制作一个局域网的网络闲聊工具的;而且通过制作该程序还能更好的学习
网络软件编程学问.
2.2功能要求:
i.找寻效劳器登录
ii.注册帐号
iii.能够实现点对点单聊
iv.能够实现群聊
v.能动态更新在线用户列表
vi.文件传输
三、系统设计
设计思想
整个系统分为效劳器和客户端,效劳器端维护各个客户端的信息。客户端的
全部信息发往效劳器端,再由效劳器进展消息的分析处理并做出相应的限制,效
劳器端是全部信息的中心,
效劳器端可以查看全部用户的闲聊记录,监控全部用户的状态,发出用户上
线、离线提示等公告,客户端那么供应接收公告的功能。
本课程设计依据系统的详细功能要求,首先应用Socket编程创立客户端和
效劳器端,每多个客户端效劳器端就会相因的创立一个线程,它们之间通过这个
连接来实现数据通信;然后在客户端设置一个监听器,用于监听效劳器发来的消
息。并依据消息做出不同的动作。
系统功能
该系统实现了用户之间的点对点单人闲聊,在线用户之间的群聊。为了加强
之间的信息沟通,还实现了用户之间文件传输、语音闲聊.在客户端和效劳器端
都可以查看历史消息、保存消息、清空消息。为了监控用户之间的状态,效劳器
还可以实现踢掉用户的功能,同时用户时间文件传输的信息都会在效劳器上显
/J\o
系统架构
1)选择传输限制协议TCP,运用Java的Socket编程机制,分别建立客户端
与效劳器端、语音传输运用的是UDP限制协议;
2)分别设计客户端与效劳器端的界面,并运用Java应用程序用户界面的开
发工具包Swing进展窗体界面的布局,以及实现局部商口事务的相应。
3.4模块设计
效劳器端:
主要实现向各个客户端发布系统消息,承受来自客户端的各种信息并分别处
理。详细功能如下:
①连接限制:包括启动效劳器、断开效劳器以及断开某个客户端的连接;
②管理作用:包括对参与闲聊者的昵称进展修改以及向全部或某个客户
端发送消息.,维护一个IP地址和昵称所对应的哈希表,以
便定位到正确的客户端,且有权强制修改用户昵称;
③刷新列表:在有用户登陆或离开的时候实时更新列表,并将信息反应到
各个客户端;
④登陆信息:检查用户是否已登陆,如登录,发消息通知全部用户。同时
刷新在线用户列表;
⑤闲聊记录:能保存闲聊记录,实现消息的保存、清空以及杳看等功能;
⑥消息处理:解析客户端与效劳器端的消息交互类型,并做出相应处理,
能够找到消息所对应的接收端。
客户端:
主要实现向效劳器端发布消息,并且对来自效劳器的消息做出相应的响应。
详细功能如下:
①连接功能:输入效劳器地址,实现登录及断开功能
②登录设置:登录时,发送消息使效劳器端获得用关登录信息,昵称及TP
地址记录到效劳器端维持的哈希表,断开后发送消息使TP
地址及昵称从哈希表中删除;
③监听作用实现对效劳器发送过来的消息进展监听的功能;
④消息处理接收由效劳器端发送来的信息,并做出相应的响应;
⑤闲聊记录实现闲聊记录的保存、消空以及查看等功能;
⑥消息处理相应从效劳器端接收到的消息交互类型,实现用户与用户之
间的信息交互和文件交互;
四、详细设计与实现
效劳器端
效劳器
该段功能由Server.java文件中的Server类实现,详细实现过程如下:
①启动效劳并接收连接:效劳器的任务首先是建立一个由IP地址到昵称的映
射的哈希表,用于存放用户的根本信息;启动效劳器后,等候建立一个连接,然
后用这个连接产生的Socket创立一个Client,同时检查该用户是否已存在哈希
表中,假设以存在,那么提示该次连接请求失败,从而实现限制1P的目的;假
设不存在,那么将该1P地址及其昵称或默认呢称的映射添加到哈希表中,接着
效劳器端向全部的用户发送管理信息,提示有新的用户登录,并且将刷新后的用
户列表同时发送到各个客户端。
②关闭效劳:效劳器端遍历哈希表,关掉每一个用户对应的Sockel,之后,
关闭效劳Server,
③管理作用之发送消息:效劳器端解析由客户端发送的请求,假设限制字以
“SPECIAL"开头,那么通过限制字后的昵称从哈希表中找到对应的用户,实现
效劳器端到客户端的点对点消息交互;假设不是以“SPECIAL"开头,那么实现
消息的播送发布。
④管理作用之修改昵称:首先推断新的昵称是否在哈希表中存在,假设已存
在那么给出错误提示,否则通过该用户的旧昵称在哈希表中查找到该用户,并
用欲修改的昵称替换掉原昵称;接着刷新效劳器端的用户列表显示,最终刷新客
户端的用户列表显示。
⑤管理作用之断开连接:假设要断开某个客户端与效劳器的连接,首先向该
用户发送被管理员请出系统的信息,然后通过该用户的呢称从哈希表中找到对应
socketsservice及IP地址等信息,再从每一项信息对应的列表里删除该用户
的信息,最终关闭该用户的socket,同时刷新效劳器端以及各个客户端的用户
列表显示。
⑥在效劳其中,须要同时处理多个客户端的请求,因此此处用到了多线程处
理机制。在效劳器程序里创立单个SorvorSocket,并调用accept()来等候一
个新连接,一旦accept()返回,就取得结果获得的socket,并用它新建一个
线程,令其只为那个特定的客户端效劳,然后再调用accept0,等候下一次新
的连接请求。
界面设计
该段功能由ServerFrame.java文件中的ServerFrame类实现,详细实现过
程如下:
窗口布局:效劳器端窗口运用了BorderLayout事务管理器,把整个容器分
成了五个区域:North、South、East>West和Center,每个区域放置一个
面板,每个面板又分别运用不同的事务管理器放置其他组件,如按钮、标签、
文本框等,各个组将构成了一个完整的效劳器端界面。
事务处理:通过Java的授权事务模型,针对组件send、Buttonl"Button8,通
过addXXXListener(主要运用了addActionListener)方法注册监听器,并且实现
ActionListener接口中的actionPerformed方法,这样,当组件触发了相应类
型的事务后,此事务就会被传送给已注册的监听器,事务监听器负责处理事务。
至此,实现了窗口对以下几个事务的响应:发送消息、保存消息、清空消息、查
看历史消息、启动效劳、关闭效劳、断开连接、修改昵称。
五、运行结果
客户端登陆
客户端注册
客户端与客服端私聊
客户端保存记录文件
/EclipseJavaEnterpris-聊天室[用户:明]
EditSourceRefa(
【在线用户列表】在线人数.31聊天信息]
咽【你】对[所有人】微笑地说:啊
【111】来了
111【111】对【保工课:胆
ackageExplorer眼222黑谒瑞歙播捻
咽
【222】来了
说:hello
••聊天室[用户111]区
t在线用户列表]在线人数:31聊天信息】
说
—
^明
rm又
L:
有
咽人
北
r又U:
k^督
说
有
r人
111kr@
r
222k2x
人
有
r22翁
k2u•
22m・
笑
人
r2有
k22:hello
l£>|[HappyChat]副刘胳S区
服务器管理用户信息管理
[用户消息][在线用户列表]
[22:9:29]啊-淅有人咽
[22:11:3]111-WDM111
[22:11:25]11厂海有人阐
222
国[22:11:54]11卜》筑有人:咽
[22:16:7]222-次俏入咽
国[22:18:9]222->斫有人:hello
昌
user.t
恒
user2
六、结论与总结
课程设计结论
通过4.3运行结果,可以看出,该课程设计利用Java应用程序Socket编程
实现了以下功能:运用Java的多线程处理机制建立两个套接字分别作为效劳器
端和客户端。
在效劳器端实现了向各个客户端发布系统消息、,承受来自客户端的各种信息
并分别处理的功能,可以限制客户端的连接以及对用户的管理作用,并且能够适
时检测已登录用户的连接状态且刷新在线用户列表,更能够解析客户端与效劳器
端的消息交互并做出相应处理。
在客户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北武汉市华中农业大学韩文元课题组诚聘博士后笔试模拟试题及答案解析
- 2026云南怒江州贡山县医疗保障局选聘医疗保障义务社会监督员10人考试备考题库及答案解析
- 2026广西崇左市江州区消防救援大队招聘财务会计1人考试备考题库及答案解析
- 2026广东清远市佛冈县石角镇招聘专职消防安全监管员2人考试备考题库及答案解析
- 2026内蒙古民族大学招聘银龄教师17人考试参考题库及答案解析
- 2026安徽消防中控员考试参考试题及答案解析
- 2026年温医大眼视光干细胞生物医学与生物材料工程研究组招聘备考题库及1套完整答案详解
- 南京古生物所非在编项目聘用人员(劳务派遣)招聘备考题库(2025年第18期)及参考答案详解一套
- 中国支付清算协会2026年度公开招聘备考题库含答案详解
- 兴国县鼎龙乡中心幼儿园2026年春季教师招聘备考题库及答案详解1套
- 2026年中央广播电视总台招聘124人备考笔试题库及答案解析
- 四川水利安全b证考试试题及答案
- 2626《药事管理与法规》国家开放大学期末考试题库
- 合资船舶合同范本
- 2025年云南昆明巫家坝建设发展有限责任公司及下属公司第四季度社会招聘31人笔试参考题库附带答案详解(3卷)
- 2026年湖南化工职业技术学院单招职业技能考试题库含答案详解
- 食材配送公司管理制度(3篇)
- 供销合同示范文本
- 2024年供应链运营1+X职业技能等级证书中级考试(含答案解析)
- 《分布式光伏发电开发建设管理办法》问答(2025年版)
- 国家金融监督管理总局真题面试题及答案
评论
0/150
提交评论