版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、作者: 导师:,Java即时通信工具 (JICQ),2,简介,Java即时通信系统(JICQ)是以Java语言为实现的网络即时通信工具,包括服务器端和客户端,可以在企业内部网络和互联网上运行。使用JICQ可以和好友进行交流,信息即时发送,即时回复,传输文件等功能。 本系统充分利用了Java语言的平台无关性等众多优点,主要采用了Socket网络编程接口、多线程、输入输出流、Swing界面编程技术,为我们构建一个跨平台的真正畅通的网络信息交换工具 。,3,性能需求,客户端(JICQ)与服务器端、客户端与客户端能够顺利进行短信收发功能,短信内容不能超过200字符,短信发送延迟时间小于6秒,否则消息发
2、送失败,并向用户返回失败原因。 服务器端需要同时响应最低500个用户的访问量。,4,硬件配置,服务器: CPU:PIII1G 内存:512M以上 硬盘:60G以上,双IDE硬盘,做镜像 客户端: PII 300 64M以上,5,JICQ系统部署图,Java即时通信系统的服务器端包括JICQ服务器程序(其监听9000端口)和数据库服务器(本系统采用MS SQL Server 2000);客户端为JICQ即时通信工具软件。,6,JICQ基本功能特点,1.客户端(JICQ)向服务器的新用户注册功能。 2.客户端(JICQ)与服务器端之间的通信功能。 3.客户端(JICQ)之间的短信发送功能。 4.客
3、户端(JICQ)之间的文件传输功能。 5.网友分组的管理:好友组、陌生人组、黑名单组 6.添加/删除好友。 7.服务器端存储JICQ用户表、好友列表、离线消息。 在客户端存储好友资料和聊天记录。,7,JICQ用例图,8,新用户注册活动图,9,JICQ用户登陆活动图,10,客户机(JICQ)之间的通信活动图,11,客户机(JICQ)之间的文件传送,12,新增好友活动图,13,删除好友活动图,14,JICQ数据库物理模型图,15,JICQ数据库结构设计,Java即时通信系统的数据库服务器为MS SQL Server 2000,数据库名称为JavaICQ,其中主要包括数据表Users、Friends
4、、OfflineMsg。,16,客户端JICQ存储结构设计,客户端JICQ除了必备的程序文件之外,还有相关的数据文件,以辅助程序运行。主要包括用户信息,好友信息,头像文件,声音文件等信息。,17,JICQ系统类包,Message包为JICQ系统的消息类包,其中包含有JICQ系统定义的短消息类型,为服务器与客户端所共用;Server包为系统的服务器端程序类包,运行在服务器端机器;Client包为系统的客户端程序类包,运行在客户端机器。,18,消息类,消息类为即时通信系统中,客户端与服务器端、客户端与客户端的通信基础类。Message为消息类的基类,OrdinaryMsg、RegisterMsg、
5、FinderSetMsg、FinderMsg、LoginedMsg、InformLogonMsg为它的派生类。 Message消息基类,包含有所有消息的类型,以及基本属性。 RegisterMsg为注册消息类,包含有所有注册属性。 OridnaryMsg为普通的消息类,主要用于聊天、登陆、注销等消息。 FinderMsg为搜索请求消息类,包含有搜索类型,请求内容。 UserBasicInfor类型的网友数组。 LoginedMsg为返回的登陆消息类,其中包含有在线好友的列表。 InformLogonMsg为通知在线好友的消息类,其中主要包含有当前用户的IP地址与端口。,19,客户端JICQ线程
6、控制,客户端JICQ主要由监听线程、消息处理线程控制。首先由监听线程监听消息,当有消息来到时,启动消息处理线程处理消息,最后由消息线程将消息通知用户边界对象。 另外,客户端还有一个能与服务器保持联络的线程,每两分钟向服务器通知一次,表明该客户端仍然在线。,20,服务器端JICQ线程控制,服务器端JICQ主要由监听线程、线程调度池、消息处理线程组成。首先由监听线程监听9000端口,并启动线程池,当有消息来到时,从线程池取得线程,并将消息交由其处理,由消息处理线程处理用户注册、登陆、注销、添加删除好友等请求,将处理结果写入数据库,最后向客户端返回消息,消息处理线程在完成工作之后,再重新回到线程池,
7、等待下一次重新被利用。 另外,服务器还有一个检查用户是否仍然在线的线程,每三分钟检查一次,将一些由于和客户端JICQ崩溃等原因,没有来得及向服务器声明在线的用户的在线状态,重新置为“离线”状态。,21,服务器对客户端JICQ的响应逻辑,1.对用户注册功能响应 ; 2.对用户登陆的响应 ; 3.对用户注销的响应 ; 4.对用户搜索的响应 ; 5.对添加好友的响应 ; 6.对删除好友的响应:,22,客户端JICQ程序界面设计,JICQ系统登录对话框,23,注册向导申请JICQ号码,24,注册向导基本信息,25,注册向导网络设置,26,注册向导注册成功,27,查找网友,28,查找向导,29,查找向导
8、网友结果对话框,30,客户端JICQ主面板,31,发送消息对话框,32,客户端JICQ滑动按钮组工作原理,主要使用了Swing界面类中的JPanel组件,Timer组件,自定义的ImageButton组件。每当用户单击按钮时,激发Timer事件,每20毫秒展开或者缩小这三个JPanel组件,重新计算按钮位置,以便于产生动画效果。 自定义的ImageButton组件实现的接收短消息事件,每当有短消息来到时,ImageButton就会发生相应的动作,比如闪烁或者跳跃并发出声音。,33,客户端JICQ消息事件源与监听器原理,事件源是从监听端口接收到消息的线程,由事件源来注册监听器,发送自定义的消息事
9、件对象,监听器为实现消息监听接口的一组头像组件。当消息事件发生时,事件源把短消息事件对象发送给头像按钮组件,头像按钮组件就会调用消息处理方法,完成象闪烁,跳跃,发出声音等反应。,34,服务器端JICQ线程池原理,多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间。 假设在一台服务器完成一项任务的时间为T T1 创建线程的时间T2 在线程中执行任务的时间,包括线程间同步所需时间T3 线程销毁的时间 T T1T2T3 线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3分别安排在服务器程序的启动和结束的时间段或者一些空闲的时间段,这样在服务器程序处理客户请求时,不会有T1,T3的开销了。 一般一个简单线程池至少包含下列组成部分。 线程池管理器(ThreadPoolManager):用于创建并管理线程池 工作线程(WorkThread): 线程池中线程 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。 任务队列:用于存放没有处理的任务。提供一种缓冲机制。,35,总结与展望,经过一段时间的学习和工作,JICQ即时通信工具已经初具雏形,实现了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年河南省郑州市共同体高一下学期7月期末考试生物试卷
- 2025~2026学年安徽省芜湖市高二下学期期末考试生物试卷
- 2026 江苏 市场监管岗事业编考前模拟训练卷含答案解析
- 2026 湖南 综合管理岗事业单位高频强化训练卷
- 2026 湖南 退役军人岗事业编结构化面试
- 2026年广东省职业院校技能大赛-中职组(网络建设与运维赛项)考试题库(带答案)
- (2026版)手术风险评估制度及流程
- (2026年)口腔专科医院种植科感染管理制度
- 2026年ICU 危重患者体温保护试卷及答案
- 2026年ICU 气管插管气囊漏气应急监护试卷及答案
- 2026年新教材人教版九年级上册英语期中复习:Unit 1-4+期中5套测试卷汇编(含答案)
- 河北省邯郸市2025-2026学年高一上学期期中联考语文试题及答案
- ESC 2026新版心力衰竭管理指南精读
- 2026智联招聘笔试题库及答案
- 2026版《药物临床试验质量管理规范》GCP考试题库(含标准答案+解析)
- EDA技术及应用项目教程 教学大纲
- 中医护理评估
- 2025年度中国展览数据统计报告
- 2026年中考作文押题指导
- 泌尿外科副主任医师述职报告
- T/CCMA 0160-2023非公路洒水车
评论
0/150
提交评论