基于JAVA的即时通讯系统的设计与实现
JAVA网络通信系统的研究与开发论文
毕业设计(论文)中文摘要毕业设计(论文)外文摘要目录1 引言 (1)1.1 课题的研究现状 (1)1.2 课题简介以及设计要求 (2)1.2.1课题简介 (2)1.2.2课题设计要求 (2)1.3 课题的调研 (2)1.4 可行性分析 (2)1.4.1 可行性分析的目的 (2)1.4.2 技术可行性分析 (3)1.4.3 经济可行性分析 (3)1.4.4 操作可行性分析 (3)1.4.5 法律可行性分析 (4)1.5 论文各章简介 (4)2 系统需求分析 (5)2.1 业务流分析 (5)2.2概念结构设计 (5)2.3 数据流分析 (5)2.4 数据字典 (6)2.4.1数据字典 (6)2.4.2处理逻辑说明 (7)3 系统总体设计 (9)3.1 系统开发的原则 (9)3.1.1 面向用户的观点 (9)3.1.2 严格按阶段进行 (9)3.1.3 采用系统的观点处理 (9)3.1.4采用模块化设计方法 (9)3.1.5 整个系统的设计主要采用快速原形法 (9)3.2系统总体功能结构设计 (10)3.2.1 系统代码设计说明 (10)3.2.2 系统设计技术说明 (10)3.2.3 系统总体功能结构 (12)3.3 系统数据库设计 (13)3.4开发环境设计与运行环境设计 (14)3.4.1 开发环境设计 (14)3.4.2 运行环境设计 (15)4 服务器模块设计 (15)4.1 主服务器类设计 (15)4.2 多线程ServerThread类的设计 (16)4.3 用户注册模块 (17)4.4 登录验证模块设计 (17)4.4.1登录线程设计 (17)4.4.2 通知好友上线模块 (18)4.5 好友管理模块 (19)4.5.1 查找好友模块 (19)4.5.2 查看好友资料模块 (19)4.5.3 直接添加好友模块 (19)4.5.4 添加好友模块 (19)4.5.5 添加好友应答模块 (21)4.5.6 删除好友模块 (22)4.6 退出下线模块 (22)5 客户端模块设计 (23)5.1新用户注册模块 (23)5.1.1 注册流程 (23)5.1.2 注册事件监听流程 (23)5.2 用户登录模块 (25)5.2.1 监听登录事件 (26)5.2.2 界面设计 (27)5.2.3 设计过程中遇到的问题 (28)5.3 消息通信模块 (29)5.3.1 发送消息 (30)5.3.2 监听用户操作消息 (32)5.3.3 接收消息 (35)5.3.4 发送文件和接收文件模块 (36)5.4 好友管理模块 (37)5.4.1 查找好友 (37)5.4.2 添加好友 (38)5.4.3 查看资料 (39)5.4.4 删除好友 (39)6用户手册 (40)6.1 系统的运行环境 (40)6.1.1 硬件要求 (40)6.1.2 软件环境 (40)6.2 系统的功能简介 (40)6.3 系统的运行和操作指南 (40)7 系统特色与不足 (42)7.1 系统特色 (42)7.2 系统不足 (42)7.3 设计收获和心得 (42)结论 (44)致谢 (45)参考文献 (46)1 引言1.1 课题的研究现状网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行即时的信息交流。
基于J2EE的即时通讯系统的与实现
科技信息SCIENCE&TECHNOLOGYINFORMATION2012年第35期一提到即时通信系统,大家自然而然的会想到,腾讯QQ 和MSN,这已然成为我们日常生活中不能缺少的部分,朋友聊天,资源共享,文件传输等等,为我们的工作提供了很大程度上的便利,但是他们的劣势也显而易见。
以事业单位的办公人员为例,在工作时间如果使用腾讯QQ 或MSN 通讯工具,在使用方式上很难得到控制,员工经常利用它们做一些与工作无关的事情,另外对政要部门使用QQ 和MSN 软件的安全性也另人堪忧。
本市目前正在开展“三治三提”活动,即“治庸、治懒、治散,提质、提速、提效”,其中有一项就要求办公电脑上不准安装QQ 和MSN 等通讯软件,这虽然在一定程度上杜绝了利用工作时间聊天等影响工作效率的行为,但同时也影响了为正当工作需要所进行的同事交流、资源传输等活动,所以基于局域网的即时通讯系统的开发成为必要。
1即时通迅系统的原理和工作方式IM 技术全称Instant Messaging ,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。
IM 的出现和互联网有着密不可分的关系,IM 完全基于TCP/IP 网络协议族实现,而TCP/IP 协议族则是整个互联网得以实现的技术基础。
随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,IM 的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM 工具上实现,于是功能强大的IM 软件便足以搭建一个完整的通信交流平台。
IM 的基本技术原理如下:第一步,用户A 输入自己的用户名和密码登录IM 服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A 的IP 地址、IM 客户端软件的版本号及使用的TCP/UDP 端口号,然后返回用户A 登录成功的标志。
第二步,根据用户A 存储在IM 服务器上的好友列表(Buddy List ),服务器将用户A 在线的相关信息发送给也同时在线的IM 好友的PC 机,这些信息包括在线状态、IP 地址、IM 客户端使用的TCP 端口(Port )号等。
基于JAVA的即时通讯系统的设计与实现
2 I 的分 析 及 设 计 M
I 中 涉 及 到 的 网 络 通 信 协 议 主 要 有 T P和 UD M C P, 涉 及 到 的 网络 通 信 技 术 有 P P M 网络通 信 解 决 方 案通 2 。I 常 有 两种 : 网通 信 的混 合 网络 模 式 解 决 方 案 和局 域 网 通 公 信 的 网 络解 决 方 案 。 现 仅 就 I 客 户 端 的用 例 分 析 和 设 M
所谓 即 时 通 讯 ( M) 实 际 上 是 一 个 终 端 服 务 。 它 允 I ,
录 、 户好 友信 息 管 理 、 户 个 人 信 息 管 理 、 天共 六 个 主 用 用 聊
要 的 功 能 块 , 各 功 能 块 中又 包 含 有 更 多 的 子 用例 。仅 列 在
许 两人 或 多人 使 用 网络 即时 地 传 递 文 字 信 息 、 片 信 息 以 图
第 1 卷 第 1期 0 1 2 1 1 月 01年 1
软 件 导 刊
So t r i e f wa e Gu d
Vl1 1 0 . 0N0. 1 1 NO 2 l V. O1
基于 J AVA 的 即 时 通 讯 系 统 的设 计 与 实 现
王光 琼 , 梁 弼 , 兆 兵 朱
( 四川 文理 学院 计算机 科 学 系, 四川 达 州 6 5 0 ) 3 0 0
摘 要 : 简要 阐述 了即时通讯 (ntn sa ig 简称 I 的特点 、 Isa t Mesgn , M) 开发现 状及应 用, 对 I 进行详 细分析和设 计 并 M
( 包括 数 据 库 ) 最 后 通 过 J , AVA 语 言 实现 了一 个 I 的 具 体 应 用 。 M
关键 词 : 即时通讯 ; 面向对 象; 多线程 类;
即时通讯系统的设计与实现
收稿日期:2019-01-31 修回日期:2019-05-31 网络出版时间:2019-11-07基金项目:2018年度国家级大学生创新创业训练计划基金资助项目(201813902002);2018年度广东省大学生科技创新培育专项资金资助项目(pdjh 2018b 0642);2017年度广东省大学生创新创业训练计划基金资助项目(201713902027)作者简介:叶为正(1996-),男,研究方向为移动互联网㊁Web 应用开发;李 晶,硕士,讲师,研究方向为电子商务㊁数据挖掘㊂网络出版地址:http :// /kcms /detail /61.1450.TP.20191107.0908.016.html即时通讯系统的设计与实现叶为正,林声肯,黄立轩,许志明,李 晶(中山大学新华学院,广东广州510520)摘 要:随着以智能手机和平板电脑为代表的移动设备的迅速普及,基于当前企事业单位内部即时通讯技术的实际需求,自主设计并实现一个即时通讯系统,对于企事业单位沟通与交流具有重要意义㊂项目开发主要分为两部分:客户端使用HBuilder 工具进行开发,使用MUI 与H5Plus 开发移动应用客户端,充分利用当前混合开发技术的优势,实现一次开发即可生成运行在Android㊁iOS 以及小程序端的移动应用;后台服务端使用IntelliJ IDEA 开发,使用Netty+SpringBoot 框架作为后台的主要框架,利用Nginx+FastDFS 分布式文件系统搭建图片服务器,使用MyBatis 框架操作MySql 数据库㊂该系统主要功能有聊天㊁通讯录㊁扫一扫㊁添加好友㊁上传头像以及修改个人信息等功能,对即时通讯系统的搭建有一定的借鉴意义㊂关键词:Netty;即时通讯;混合开发;MUI中图分类号:TP302 文献标识码:A 文章编号:1673-629X (2020)02-0216-05doi:10.3969/j.issn.1673-629X.2020.02.042Design and Implementation of Instant Messaging SystemYE Wei -zheng ,LIN Sheng -ken ,HUANG Li -xuan ,XU Zhi -ming ,LI Jing(Xinhua College of Sun Yat -sen University ,Guangzhou 510520,China )Abstract :With the rapid popularization of mobile devices represented by smart phones and tablets ,based on the actual needs of instant messaging technology in enterprises and institutions ,it is of great significance for enterprises and institutions to design and implement an instant messaging system independently.The project development is mainly divided into two parts.The client uses the HBuilder tool for development.The MUI and H 5Plus are used to develop the mobile application client.With full use of the current hybrid development technology ,mobile applications running in Android ,iOS and small programs can be generated in one development.Background server uses IntelliJ IDEA for development ,with Netty +SpringBoot framework as the main framework ,Nginx +FastDFS distributed file system as the image server ,MyBatis framework to operate MySql database.The main functions of the system include chatting ,address book ,sweeping ,adding friends ,uploading avatars and modifying personal information ,which can be used for reference in the construction of instant messaging system.Key words :Netty ;instant messaging ;hybrid development ;MUI0 引 言随着网络技术的发展,越来越多的人开始使用互联网,人们对网络即时通讯系统的需求量也越来越大,并且已成为当今人们交流的重要途径,这使得即时通讯技术飞速发展[1-2]㊂尽管市场上出现了许多第三方即时通讯提供方,如环信㊁融云以及腾讯云通信IM等,但自主开发出一款能在企事业单位内部使用的㊁进行工作沟通交流的即时通讯系统具有重要意义[3]㊂文中首先介绍了实现该系统所采用的技术,并在IntelliJ IDEA 与HBuilder 开发环境下进行编程开发,然后重点研究整个即时通讯系统的设计思路㊁实现方法以及实现效果㊂1 相关技术1.1 Nginx 与FastDFSNginx 是一款高性能的Web 服务器[4],采用多进程的基于事件驱动的架构,全异步的网络I /O 处理机制,以及极少的进程间切换设计,使得它能够同时支持百万级别的TCP 连接[5]㊂FastDFS 是用C 语言编写的一款开源的分布式文件系统[6]㊂FastDFS 是为互联网第30卷 第2期2020年2月 计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT Vol.30 No.2Feb. 2020量身定制,充分考虑了冗余备份㊁负载均衡㊁线性扩容等机制,并注重高可用㊁高性能等指标㊂使用FastDFS可以很容易搭建一套高性能的文件服务器集群提供文件上传㊁下载等服务[7]㊂文中采用Nginx+FastDFS搭建图片服务器,用于存储用户头像和二维码等图片文件㊂1.2 MUI框架与HTML5+MUI框架,是DCloud公司发布的一款开源框架,是最接近原生App的前端框架[8]㊂HTML5+是HBulider利用自己的IDE结合不同平台的接口再加上HTML5[9]开发出来的一套框架,它有自己的使用规范,允许和提供了一些接口和函数来让Web[10]开发者实现原生App所能实现的功能,并且MUI以iOS平台UI为基础,补充了Android特有的UI组件[11]㊂1.3 Netty框架与SpringBoot框架Netty是一个性能极高㊁异步事件驱动的框架[12],是一个异步非阻塞的框架㊂这个框架支持多种通信协议,包括UDP㊁TCP以及文件传输协议等[13]㊂通过使用Netty,对于所有的IO操作,开发人员都可以主动地或由它内部的机制取得结果[14]㊂SpringBoot是由Pivotal团队开发的全新的开源开发框架,能够简化应用Spring开发项目㊂最突出的特点是配置方式,大大简化了Spring应用的各个方面㊂另外SpringBoot能够集成大量的框架,解决了之前很重要的项目之间包的版本依赖和稳定性等问题[15]㊂2 平台系统结构设计该平台采用C/S模式,前端也就是客户端采用移动应用程序的方式,后端采用SpringBoot+Netty作为主要的服务端,利用Spring MVC的注解创建RESTful Web服务㊂移动客户端与服务端连接读写逻辑处理均是启动阶段通过给逻辑处理链Pipeline添加逻辑处理器实现连接数据的读写逻辑㊂客户端连接成功回调逻辑处理器channelActive()方法,客户端/服务端接收连接数据调用channelRead()方法㊂写数据调用write⁃AndFlush()方法,客户端与服务端交互的二进制数据传输载体为ByteBuf,ByteBuf通过连接的内存管理器创建即ctx.alloc().buffer(),通过writeBytes()方法将字节数据填充到ByteBuf写到对端㊂Netty客户端与服务端通信流程如图1所示㊂图1 Netty客户端与服务端通信流程3 平台功能模块设计客户端模块设计:用户通过登录或者注册进入到App时,首先会进入到聊天页面,通过底部导航进入发现页进行好友添加操作,当好友添加成功,在通讯录中即可显示已添加的好友,点击头像跳转至聊天页面㊂在个人信息页,可以进行头像㊁昵称的修改以及退出登录㊂平台功能模块设计如图2所示㊂4 系统的数据库设计经过对即时通讯系统的设计和功能需求分析,建立了关系数据库的实体-关系模型,确定数据库里用户㊁通讯录好友㊁好友请求㊁聊天信息实体㊂每个实体对应一个数据表,具有多个字段属性㊂图2 平台功能模块设计4.1 系统实体设计该系统将MySQL数据库作为后台数据库,创建㊃712㊃ 第2期 叶为正等:即时通讯系统的设计与实现的后台数据库名称为IMDB,包括4个表:用户信息表㊁通讯录好友信息表㊁好友请求记录表㊁聊天信息表,如表1所示㊂表1 即时通信系统中的表表名实体说明users用户my_friends通讯录好友friends_request好友请求chat_msg聊天记录4.2 数据表设计在对系统需求和实际情况分析的基础上,对每个表的字段名㊁数据类型㊁完整性约束信息进行定义,便于各类资源的信息的存储和数据检索㊂系统数据表详细情况如表2~表5所示㊂表2 用户信息字段名类型描述id varchar标识id username varchar用户名password varchar密码face_image varchar头像缩略图face_bigimage varchar头像nickname varchar昵称qrcode`varchar二维码表3 通讯录好友信息字段名类型描述id varchar标识id_my_user_id varchar用户idmy_friend_user_id varchar用户好友id表4 好友请求信息字段名类型描述id varchar标识id send_user_id varchar请求方用户idaccept_user_id varchar接收方用户idrequest_date_time datetime请求时间表5 聊天信息字段名类型描述id varchar标识id send_user_id varchar发送方用户idaccept_user_id varchar接收方用户id msg varchar消息sign_flag int签收状态Create_time datetime发送时间5 平台功能设计与实现5.1 关键技术即时通讯APP开发主要包含两个部分:移动客户端和Java Web后台服务端㊂客户端的聊天功能通过WebSocket与后端数据进行交互,其他功能均采用MUI提供的Ajax与后端数据进行交互㊂5.2 登录模块用户第一次进入该系统时,输入用户名和密码,后端接收到用户输入的信息后,会判断数据库中是否存在该用户,若不存在则自动注册后登录,并将用户的信息通过H5+提供的API接口plus.storage.setItem(key, value)方法存储在本地数据存储区㊂当用户打开该软件时,系统会自动通过plus.storage.getItem(key)方法获取应用存储的值进行登录操作㊂5.3 个人信息模块在个人信息模块中,主要有查看头像㊁昵称㊁账号㊁我的二维码与退出登录等功能㊂点击头像即可查看头像㊁下载头像与上传头像㊂上传头像时,系统会调用开源图片裁剪插件Cropper进行图片的裁剪,通过前端传过来的base64字符串,然后转换为文件对象再上传到FastDFS,将拼接好的图片url写入用户对象,最后调用MyBatis对该用户对象进行更新操作㊂二维码是用户注册时后端使用谷歌开源项目zxing所生成的,点击二维码,即可查看二维码或者下载二维码,其他用户可以通过发现页的扫一扫功能实现添加好友的功能㊂点击退出登录,即可将用户的信息从系统中清除,跳转到登录模块㊂个人信息页面如图3所示㊂图3 个人信息页面㊃812㊃ 计算机技术与发展 第30卷5.4 发现模块本模块主要有添加好友与扫一扫功能,输入好友的账号即可实现好友请求的发送㊂在扫一扫中也可以通过扫描好友的二维码进行添加好友的请求㊂通过H5+API中的Barcode模块完成二维码的扫描识别功能,获得码数据及码类型,再使用mui.ajax(url[, settings])将myUserId与friendUsername传递至后端,或者直接通过添加好友将数据传递至后端,后端根据friendUsername将朋友信息通过mybatis操作数据库查询出这个Users对象,然后再查询发送好友请求记录表(friends_request),如果sendUserId和acceptUserId 没有关联,则建立关联关系,实现发送添加好友的请求㊂在对方登录系统后,如果忽略好友请求,则直接删除好友请求的数据库表记录,如果是通过好友请求,则互相增加好友记录到数据库对应的表,然后删除好友请求的数据库表记录㊂发现页面如图4所示㊂图4 发现页面5.5 通讯录模块该模块使用MUI的Ajax将该用户的id传至后端,获取所有好友列表,通过words.convertPinyin(friend.friendNickname)将好友的昵称转化成拼音,截取拼音的首字母,构建通讯录html进行渲染㊂当用户下一次打开通讯录,直接从缓存中获取联系人列表渲染到页面㊂对好友通讯录批量绑定点击事件,当用户点击某个好友,即会打开聊天页面,并携带相应的用户参数㊂通讯录列表页面如图5所示㊂5.6 聊天模块在该模块的后端主要有两个类:WebSocket服务端启动类WSServer与处理类ChatHandler㊂聊天列表页面如图6所示㊂图5 通讯录列表页面图6 聊天列表页面在WSServer中,由于WebSocket是基于http协议的,所以要通过pipeline.addLast(new HttpServerCodec())来添加http编解码器,此外,还要增加心跳支持以及httpWebsocket支持,最后增加自定义的处理类Chathandler以及心跳处理类HeartBeatHandler㊂在Chathandler中,它继承了SimpleChannelInboundHan⁃㊃912㊃ 第2期 叶为正等:即时通讯系统的设计与实现dler<TextWebSocketFrame>类,在Netty中,是用于为WebSocket专门处理文本的对象,frame是消息的载体㊂聊天模块实现的业务逻辑如下:步骤1:获取客户端传输过来的消息㊂通过msg.text()获取客户端传输过来的消息,通过ctx.channel()获取当前的channel,并将客户端传递至后端的json字符串转换成相应的DataContent数据内容对象㊂步骤2:通过数据内容对象中action属性与后端的枚举类中的属性进行对比判断消息类型,并根据不同的类型来处理不同的业务㊂(1)当websocket第一次open的时候,初始化channel,把用的channel和userid关联起来㊂(2)若是聊天类型的消息时,就把聊天记录保存到数据库,同时标记消息的签收状态为 未签收”㊂发送消息,即从全局用户Channel关系中获取接受方的channel,若channel为空代表用户离线㊂当接受方re⁃ceiverChannel不为空的时候,从ChannelGroup去查找对应的channel是否存在,当用户在线时,通过writeAndFlush推送消息㊂(3)若是签收消息类型,就针对具体的消息进行签收,修改数据库中对应消息的签收状态 已签收”㊂(4)若是心跳类型,则打印输出相应的心跳包数据㊂步骤3:当触发handlerRemoved或发生异常, ChannelGroup会自动移除对应客户端的channel㊂若心跳处理类HeartBeatHandler类中的IdleStateEven为读写空闲时,也会关闭无用的channel,以防资源浪费㊂6 系统测试与运行该平台开发完成后,该系统服务端部署MacOS,并将Nginx+FastDFS图片服务器部署在CentOS6.5中㊂在小米8手机(四核,高通骁龙845,运行内存6 GB,6.21英寸屏幕,Android OS v8.0)以及iPhone8手机(六核,苹果A11+M1协处理器,运行内存2GB, 4.7英寸屏幕,iOS v10)中对各项功能进行了测试,客户端运行良好,可以实现登录注册㊁修改个人信息㊁添加好友以及聊天的功能㊂7 结束语研究了基于Netty+SpringBoot的即时通讯系统的设计与实现,采用了HBuilder和IntelliJ IDEA开发了即时通讯系统,通过HBuilder开发出来的应用可生成适用于安卓与苹果系统的安装包,节约了开发人员同时开发不同客户端的成本,实现了基本的数据通信,可以满足日常的通信需求㊂参考文献:[1] 王全彬.基于Java的网络即时通讯系统的设计与实现[D].成都:电子科技大学,2007.[2] 傅 瑶.Java即时通讯系统程序的设计与实现[D].长春:吉林大学,2015.[3] 李元君.基于Java的即时通讯系统的设计与实现[D].济南:山东大学,2013.[4] 凌质亿,刘哲星,曹 蕾.高并发环境下Apache与Nginx的I/O性能比较[J].计算机系统应用,2013,22(6):204-208.[5] CHI Xiaoni.Web load balance and cache optimization designbased Nginx under high-concurrency environment[C]//Proceedings of the3nd international conference on digital manufacturing&automation(ICDMA2012).[s.l.]:[s.n.],2012:4.[6] 蒋 园,阳许军.基于人脸识别的海量图片的存储和索引优化[J].计算机技术与发展,2019,29(3):85-88. [7] CHEN Haimeng,ZHANG Hua.Exploiting FastDFS client-based small file merging[C]//Proceedings of joint2016in⁃ternational conference on artificial intelligence and engineer⁃ing applications(AIEA2016).Wuhan:Wuhan Zhicheng Times Cultural Development Co.,2016:5.[8] 金 敏.基于MUI的汽车服务系统设计与实现[D].南昌:南昌航空大学,2018.[9] YU Wei,XU Yong.Research on the application of HTML5in the development of mobile internet[J].Journal of Intelli⁃gent and Fuzzy Systems,2018,34(2):945-954. [10]GUTIÉRREZ R T.Understanding the role of digital com⁃mons in the web;The making of HTML5[J].Telematics and Informatics,2018,35(5):1438-1449. [11]武秋芳,张冠胜.基于HTML5Plus的智能运维管理平台移动端App的开发研究[J].信息通信,2016(9):80-83. [12]张艳军,王 剑,叶晓平,等.基于Netty框架的高性能RPC通信系统的设计与实现[J].工业控制计算机,2016,29(5):11-12.[13]范华峰.一种基于Netty框架的网络应用服务器设计方法[J].福建电脑,2015(10):33-34.[14]YANG Jun,ZHANG Haipeng,HAN Lifang,et al.Design andimplementation of software consistency detection system based on Netty framework[C]//International conference on broadband and wireless computing,communication and ap⁃plications.[s.l.]:Springer International Publishing,2016: 343-351.[15]张 峰.应用SpringBoot改变web应用开发模式[J].科技创新与应用,2017(23):193-194.㊃022㊃ 计算机技术与发展 第30卷。
一种基于Java企业内部及时通讯软件设计
一种基于Java企业内部及时通讯软件设计摘要:基于Socket的局域网通讯软件能为企业局域网提供一种安全、快速的通信机制,使用Java Swing 技术设计系统界面,以Derby作为数据库服务器,用Socket编程技术实现网络通讯。
该软件包含4个模块,界面友好、操作简单,基本能满足企业内部通讯需求。
关键词:JA V A;SWING;Socket;IM0引言由于企业内管理、生产、销售等各个环节的信息流动与传递已成为企业正常生产与运转的重要条件,搭建一个基于企业内部网络的即时通信平台的重要性不言而喻。
然而,通用的商业IM软件依赖于互联网接入技术,其信息安全性差。
因此,有必要建立一种基于局域网的内部即时通信平台。
在各类网络客户端之间的通信机制的选择中,基于Socket机制无疑是成熟、可靠的选择。
这种机制透明于各类局域网络类型,能够为企业提供一种优良、高效、快速的通信机制。
基于上述优点,使得基于Socket机制的网络通信软件无需对企业现有的网络硬件设施进行任何变动,因而具有成本低廉的优点,能有效降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。
1系统关键技术分析与选择本文重点探讨即时通讯软件设计中实现系统通讯的关键技术。
在应用系统中,客户端向服务端发送请求,等待服务器返回数据,再刷新客户端的数据,称之为通讯。
在B/S或UE设备上实现即时通信的客户端,其同步方式是不可行的。
此类客户端一方面处理能力弱,另一方面网络会引起延时,因此,在客户端之间以及客户端与服务器之间的同步协调难以做到,通常采用异步方式。
在C/S 网络编程中,数据的发送和接收通过Socket 套接口完成,套接字分为阻塞式和非阻塞式[1]。
通过对Java Net框架下GUI技术、通信协议等关键技术的分析,本通信器决定采用如下技术方案:(1)Swing技术开发GUI桌面程序:采用Swing顶层容器、基本组件和事件处理等轻量级组件构建局域网通信系统的程序主要界面。
JQQ即时通讯系统的的设计和实现
本科生毕业论文(设计)论文(设计)题目:J 即时通讯系统的设计与实现学院:电子信息工程学院专业:网络工程J 即时通讯系统的设计与实现[摘要]运用Internet和Java开发技术,采用C/S模式,建立一个基于应用的即时通讯系统。
本系统实现了用户注册,用户登陆,分组管理,好友管理,查询用户,用户即时通讯,查看聊天记录等功能。
用户注册是通过系统来添加新的用户;用户登录用来验证用户的信息是否合法;分组管理功能主要是对分组的管理,如添加分组、删除分组等;好友管理功能主要是对好友的管理,如添加好友、删除好友等;查询用户是查询所有已注册的用户以便加为好友进行通讯;用户即时通讯使成为好友的双方可以即时在线交流;查看聊天记录保存了与好友通讯的所有记录。
[关键词]即时通讯系统;C/S模式;TCP;UDPJ instant messaging system design and ImplementationAbstract:The use of Internet and Java development technologies, using C / S mode, a real-time communication system based on application. The system implements user registration, user login, group administration, friends manage, query user, instant messaging, view the chat history. User registration is through the system to add new users; user login used to authenticate the user's information is legitimate; group management functions mainly for the management of groups, such as adding a group, delete group, etc.; friends management functions mainly for friends management, such as adding friends, remove friends, etc.; query the user is the query to all registered users to add as friends to communicate; users to instant messaging to become friends of the two sides can exchange real-time online; view chat history with a good save friends of the communication of all records.Key words:Instant messaging system; C / S mode; TCP; UDP目录1 绪论41.1项目背景41.2国外研究现状51.3预期目标和经济效益51.4课题简要介绍61.5系统创新点62 需求分析72.1功能需求72.1.1 用户管理72.1.2 分组管理72.1.3 好友管理72.1.4 即时通讯82.2通讯模型的特点82.2.1 适用性82.2.2 扩展性92.3可行性研究92.3.1 技术可行性分析92.3.2 不确定性分析92.3.3 分析结论92.4运行环境103 概要设计103.1框架设计103.2拓扑结构103.3功能设计133.2.1 用户注册模块133.2.2 用户登录模块133.2.3分组管理模块143.2.4 好友管理模块143.2.5 查询用户模块153.2.6 即时通讯模块153.2.7 聊天记录模块153.4设计原则与一般要求154 系统设计164.1模块设计164.2即时通讯系统关系型数据库的实现164.2.1 数据库分析174.2.2 数据库概念设计174.2.3 数据库逻辑结构设计185 系统实现185.1注册模块185.2登录模块205.3分组管理模块错误!未定义书签。
即时通讯系统的设计与实现毕业论文
毕业论文论文题目:即时通讯系统的设计与实现专业:计算机应用技术学院:计算机学院年级:学习形式:学号:论文作者:指导教师:职称:开题报告论文题目:姓名:_____________ 学号:________________ 学院:___________________ 开题报告正文应包含以下几方面的内容:1.1 论文选题的目的和意义近年来,随着Internet的飞速发展,计算机网络得到了越来越广泛的应用,并且已经逐步走进千家万户.自迈入信息时代以来,距离已经不再是人们之间联络沟通的障碍,也正因为如此,人们对沟通交流的需求和依赖也越来越强烈,各行各业对信息交流的要求也越来越高。
如今,通过各种即时通信软件,人们已经可以在足不出户的情况下,与远距离甚至世界各地的人进行实时的聊天交流,这样的交流不仅满足了人们对交流沟通的需求,同时也给人与人之间的交流带来了极大的便捷和大量的经济节省.因此,即时通信(Instant Messaging)在人们的生活工作和学习中得到了更广泛的应用。
目前,已经有不少即时通信软件在社会公众中流行,像MSN,腾讯QQ,新浪UC等,都是国内人们所熟知的知名流行即时通信软件,其技术方面也都处于国际领先水平。
同时,由于即时通信软件的便利,其应用已经由最初的简单的聊天交友得到了巨大的拓展。
适应各种场合的各式即时通信软件也开始出现在软件市场上,这就包括了一些与企业管理相关的即时通信软件,一个具有企业自己特色的集信息管理和即时通信为一体的内部应用软件,能够使一个企业或者团队更像一个整体,同时也能够给企业的管理和信息交流带来极大的便利,在一定程度上提高工作效率.同样的,对于软件设计与开发的行业来说,过去的那种仅适用于PC机上的应用程序的开发已经远远不能满足市场的多样化的需求,网络程序的广泛应用和广大需求使学习与掌握与网络相关的编程技术显得尤为重要。
本论文将结合一个具体的局域网即时通信系统的开发编写,以现有的各种技术,介绍讲解网络IM软件开发中的重要知识,并讨论其中关键环节的技术问题和各种解决方案和设计策略1.2 相关技术知识简介1。
西安电子科技大学计算机科学与技术毕业设计选题表.doc
基于Web Services的工程机械CRM信息平台的研究与开发
91
基于CSP的实时Java规范扩展研究
92
数据通信网络资源管理系统的研究与实现
93
基于.NET与Ajax的船舶敏捷制造PDM模型构建研究
94
基于Java3D的ACIS几何模型显示技术研究
95
基于.NET的行政管理系统的设计与实现
96
69
基于.Net架构的XML Web Services技术研究与实现
70
基于JSP构架的美术类学校教务管理系统
71
基于Java的DTLS协议实现与安全性分析
72
基于任务流的目标管理信息系统
73
Java可视虚拟机的研究与实现
74
海天上网行为管理系统设计与实现
75
基于.NET的血液管理与分析系统的设计与实现
2014年西安电子科技大学计算机科学与技术毕业设计选题表4 B
序号
题目1Βιβλιοθήκη 基于Java3D和VRML的网络三维实现
2
基于.NET的旅团政治工作MIS研究与实现
3
基于 Web应用的代码生成技术的研究与实现
4
基于JSP技术构建的电子类教学平台
5
基于Java的网络课件包装及其共享研究
6
中国石油华北油田公司工程监督信息管理系统的设计与实现
20
基于.NET的金属制品行业ERP系统的研究与实现
21
基于JSP的国家体育总局信访系统的构建和实现
22
Java程序安全检查工具前端的设计与实现
23
基于B/S的远程辅助教学系统的研究与开发
24
基于.NET的温州大学安防系统的设计与实现
副本计算机专业教师报题
是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是
许峰 许峰 毛莺池 毛莺池 毛莺池 毛莺池 曹敬 曹敬 曹敬 曹敬 曹敬 王志坚 王志坚 王志坚 王志坚 娄渊胜 娄渊胜 娄渊胜 娄渊胜 娄渊胜 娄渊胜 刘文婷 刘文婷 刘文婷 刘文婷
xufeng@ xufeng@ yingchimao@ yingchimao@ yingchimao@ yingchimao@ jcao@ jcao@ jcao@ jcao@ jcao@ w51178@ w51178@ w51178@ w51178@ wise.lou@ wise.lou@ wise.lou@ wise.lou@ wise.lou@ wise.lou@ lwt8807_cn@ lwt8807_cn@ lwt8807_cn@ lwt8807_cn@
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
水资源管理系统—用水量评价系统 水资源管理系统—地下水水资源评价系统 水资源管理系统—来水量评价系统 手机资费套餐语义查询系统的设计与实现 RDF流视图查询重写系统的设计与实现——流视图定义器 RDF流视图查询重写系统的设计与实现——连续查询重写器 轻量级办公系统(发文管理子系统)设计与开发 轻量级办公系统(任务交办子系统)设计与开发 轻量级办公系统(请示呈批子系统)设计与开发 轻量级办公系统(收文管理子系统)设计与开发 轻量级办公系统(宣传工作子系统)设计与开发 基于JAVAEE的车辆信息管理系统 Android智能手机平台上的车辆定位与追踪展示系统 基于FLEX技术的车辆轨迹回放展示系统 基于GPS定位坐标的区域判断算法研究与实现 Linux平台上短信通信网关设备的相关研究与应用 基于EGG图文法可视化操作平台的无向图扩充 二进前向人工神经网络学习算法的实现—用户界面以及输入和输出功能模块实现 二进前向人工神经网络学习算法的实现—网络权参数自适应调节模块实现 数字图像中椭圆检测算法的设计与实现 基于EGG图文法可视化操作平台的测试及完善 CUDA环境下OPENCL计算实践 CUDA计算负载平衡分析 CUDA图形渲染计算实践 CUDA多GPU计算实践
基于Java的即时通讯软件设计与开发
前 在 互 联 网上 受 欢 迎 的 即 时通 讯 软 件 包 括 Q MS segrGa 、 度 HIJb e、 Q等 。随 着 互 联 网 的 发 展 与普 及 , 上 即 时 Q、 N Mesne、 tl 百 k 、 brI a C 网 通 讯 联 络 已 经成 为 广 大 网 民 不 可或 缺 的 服 务 . 为 一 款 即 时 通讯 工 具 的雏 形 , vHi 统 已 经能 够 为 网友 提供 基本 的 即 时讯 息交 流 作 Ja 系 a
余 兰张 何 童 . 娟. 杰
( 华 大学 计 算 机 科学 与技 术 学 院 , 南 衡 阳 4 10 ) 南 湖 2 0 1
摘要 : 目前 即 时通 讯 工 具 在 互联 网上 使 用广 泛 , 利 、 便 易用 受 欢迎 ,  ̄ Jv aa语 言在 跨 平 台、 全 性 、 线程 、 安 多 网络 S c e 编 程 等 方 面 o kt 的 优 点 , 文 设计 了一 个基 于 I a 拟 机 可跨 平 台特 性 的 即 时通 讯 工 具 - aa 。 中 ̄ Jv Hi 时通 讯 系统 的 体 系结构 、 该 a 虚 v J vHi文 -aa 即 构成 模 块 进 行 了分 析介 绍 . 出 了 T a i系统 的详 细设 计 与 实现 过程 。 实 验证 明 , 即 时通 讯 系统 简 洁 实用 并 支持 在 多 个 操 作 系统 平 台运 给 a H v 该
bewe n 1nu nd W i OWS t e x a nd i
Ke o d : a a s c e muthe dn ;n t t s gn yw r s j ; o k t v ; lt a ig is n s a g ir a me a
即时 通讯 ( s n Mesg g 一 种 可 以让 使用 者在 网络 上 即 时 交 流 讯 息 的实 时通 讯 服 务 。 即 时 通讯 服 务 的 主 要 功 能 在 与提 供 I t t sai ) n a n是 了文 字 或视 讯 的实 时 通 讯 , 要 通 讯 双 方 同 时在 线 , 能像 多 媒 体 电 话 一样 , 送 文 字 、 案 、 音 、 像 给对 方而 不 用 考 虑距 离 。 目 只 就 传 档 声 影
即时通讯系统的设计与实现
即时通讯系统的设计与实现一、引言即时通讯系统在现代社交中扮演着重要的角色,无论是家庭、学校还是工作场所都十分常见。
随着人们对沟通工具便捷、高效的需求日益增强,即时通讯系统的开发和应用变得越来越重要。
本文将介绍即时通讯系统的设计思路和实现方式。
二、业界现状目前市场上,即时通讯系统主要分为两类:即时聊天类和视频会议类。
前者通常用于文字沟通,包括个人聊天和群组聊天,后者通常涉及语音、文字、视频等多种通讯方式,常用于远程工作和远程教学等领域。
一些大型的即时通讯软件如微信、QQ、Zoom已经成为了日常生活中的主流工具。
同时,也有一些开源的即时通讯系统,如Openfire、Rocket.Chat等,可以满足不同领域不同需求的即时通讯。
三、设计思路1. 通讯协议在设计即时通讯系统时,通讯协议是非常重要的一环。
常见的通讯协议有XMPP、WebSocket等,这些协议可以采用加密、鉴权等方式确保通讯安全。
系统需要固定的消息格式,方便消息的传递和解析。
同时,如果考虑系统可扩展性,需要保证其与现有的协议相兼容。
2. 数据库设计即时通讯系统需要存储用户信息、消息记录等数据,因此数据库设计也是非常重要的。
需要对用户信息进行分类存储,包括用户基本信息、好友列表信息、群组信息等。
在消息记录存储上,可以使用分区表、索引等技术提升查询效率和数据存储容量。
3. 服务端设计服务端扮演着连接客户端和数据库的桥梁,负责消息的传输、解析、转发等工作。
服务端主要分为以下几个模块:(1)用户管理:包括用户注册、登录、修改密码等功能。
(2)消息管理:包括单聊消息、群组消息的发送、接收、存储、转发等功能。
(3)好友管理:包括好友请求、添加、删除、查询等功能。
(4)群组管理:包括创建、解散、加入、退出、查询等功能。
(5)通知管理:包括离线消息通知、文件上传下载通知等功能。
4. 客户端设计客户端是指用户终端上的即时通讯软件。
它需要具备以下功能:(1)用户验证和身份认证:用户需要输入用户名和密码等信息进行登录。
即时通讯系统的设计与实现
即时通讯系统的设计与实现近年来,随着社交网络的快速发展以及人们对即时沟通的需求增加,即时通讯系统成为了必备的应用程序之一。
即时通讯系统是一种可以在用户之间实现即时信息传递和互动的软件系统。
一、概述即时通讯系统的设计与实现是一个涉及多个层面的复杂任务。
它需要考虑到用户界面、通讯协议、服务器架构以及数据传输等方面的问题。
本文将从这些方面深入探讨即时通讯系统的设计与实现。
二、用户界面设计用户界面是即时通讯系统中与用户交互的窗口,设计良好的用户界面能够提升用户的使用体验。
在设计用户界面时,我们应该考虑以下几个方面:1. 简洁明了的布局:用户界面的布局应该设计简洁明了,使得用户能够快速找到需要使用的功能。
使用常见的图标和按钮,避免过于花哨的设计,提升用户的操作效率。
2. 友好的交互方式:用户界面应该具备友好的交互方式,如拖拽、点击、右键菜单等。
同时,还应该提供实时的反馈,让用户知道他们的操作是否成功。
3. 多平台适配:即时通讯系统需要在不同的平台上运行,如Web、移动设备等。
因此,用户界面的设计需要考虑不同平台的特点,保证在各个平台上都有好的使用体验。
三、通讯协议的选择与设计通讯协议是即时通讯系统实现实时消息传递的核心。
常见的通讯协议包括XMPP、WebSocket和TCP/IP等。
选择合适的通讯协议非常重要,它直接影响着系统的性能和稳定性。
1. XMPP(可扩展通讯和表示协议):XMPP是一种基于XML的开放式通讯协议,被广泛应用于即时通讯系统中。
它支持实时消息传递、在线状态管理和好友列表等功能。
2. WebSocket:WebSocket是一种基于TCP的全双工通讯协议,它能够实现服务端主动向客户端推送消息。
这种推送模型非常适用于即时通讯系统,在保持连接的同时能够实时传递消息。
3. TCP/IP:TCP/IP是互联网通信的基础协议,它提供了可靠的连接和数据传输。
即时通讯系统可以使用TCP/IP协议来传输消息,但相对于其他协议来说,它的实时性稍低。
一个简单的即时通讯工具的设计与开发
一个简单的即时通讯工具的设计与开发摘要即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
Java是当前比较流行的开发语言之一,它有着自己的易用特点与性能优势,比如跨平台、安全性、多线程、网络Socket编程、数据流概念等方面,因此通过对开源即时通讯LinuxQQ的研究和分析,基于Java语言和J2EE规范设计了一个即时通讯工具JICQ (Java for I seek you),并对其体系结构、构成模块及系统关键技术进行了分析与设计。
在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,并使用Rose作为建模工具;本系统基于j2se1.5,j2ee1.4,使用Eclipse等作为开发工具,在开发过程中用到了时下流行的重构开发方法,优化了系统的设计。
力图使系统具有安全、高效、实用、支持在不同系统平台运行等特点。
关键词:即时通讯;多线程;SOCKET编程;JSPDesign and Development of a Simple InstantCommunication ToolAbstractInstant Message is currently the most popular way to communicate on the Internet,so various Instant Messaging software are continuously appearing; Service providers offer more and more communication service nowadays. Java programming language (Java 2 Standard Edition) is one of popular programming languages. With its features of cross-platform, security, multi-threaded capability, Socket Programming, data flow concepts and so on, Java has its own distinctive and functional advantages. Therefore, based on the research and analysis of LinuxQQ, with the Java language and J2EE, this paper designs an instant messenger—JICQ (Java for I seek you), and then analyzes its architecture, modules, as well as its key technologies. During the design and modeling process of instant messenger system, the UML and method of object-oriented analysis and design are used. Furthermore, the modeling tool of Rose is included. Based on the system j2se1.5, j2ee1.4, the Eclipse development tool in the development process, and refactoring development method, the system design is optimized. Due to these factors, the system is safe, efficient and practical in different operating system platforms.Key words:instant message; multithreaded; socket program; JSP目录论文总页数:30页1 引言 (1)1.1项目开发背景 (1)1.1.1 项目背景 (1)1.1.2 技术背景 (1)1.2该系统设计的意义 (2)2相关理论及基础技术与开发平台 (2)2.1即时通讯应用工作原理分析 (2)2.2所用技术 (3)2.3工具及开发平台 (4)2.4系统配置要求 (5)3系统体系结构的设计 (5)3.1需求描述 (5)3.2系统架构设计 (6)3.3系统的总体功能设计 (7)3.3.1总体功能设计 (7)3.3.2注册模块设计 (8)3.3.3 登录模块设计 (10)3.3.4用户间交互模块设计 (12)3.4数据库设计 (14)3.4.1数据库物理模型 (14)3.4.2数据字典 (15)4系统实现 (16)4.1网络通讯编码实现 (16)4.1.1聊天客户端部分代码 (16)4.1.2服务器端监听与转发消息代码 (17)4.1.3服务端单线程上线处理代码 (18)4.2系统运行的效果图 (20)4.2.1 登录界面 (20)4.2.2 主界面 (20)4.2.3 群聊天界面 (21)4.2.4 好友聊天界面 (22)4.2.5 好友查找界面 (23)4.3注册模块的实现 (24)4.3.1 数据库连接 (24)4.3.2 字符编码过滤器的核心代码 (24)4.4注册模块运行效果图 (25)4.4.1 主页面 (25)4.4.2 注册页面 (25)5 系统测试与运行 (26)结论 (27)参考文献 (28)致谢 (29)声明 (30)1引言1.1 项目开发背景1.1.1 项目背景“即时通信产品”最早的创始人是三个以色列青年,是他们在1996年做出来的,取名叫ICQ( I seek you)。
即时通讯软件的设计与实现原理
即时通讯软件的设计与实现原理随着互联网的发展,即时通讯软件越来越普及,成为人们生活中必不可少的工具。
如何设计和实现一款好的即时通讯软件,成为了每个开发者必须面对的问题。
本文将从通讯协议、数据传输、消息机制、UI设计等方面来讲解即时通讯软件的设计与实现原理。
一、通讯协议通讯协议是即时通讯软件设计中最重要的部分之一。
通讯协议应具备可靠性、稳定性、安全性等特点。
常见的即时通讯协议有XMPP、HTTP、WebSocket等。
XMPP是一种基于XML的协议,具备极高的可靠性和稳定性,广泛应用于开源聊天软件中。
HTTP协议是一种基于文本的协议,应用广泛,但其不适合实时通信场景。
WebSocket是一种全双工通信协议,可在浏览器中进行实时通讯。
在具体应用中,我们需要根据需求来选择合适的通讯协议。
二、数据传输数据传输是即时通讯软件的核心部分。
为保证数据的快速传输,我们需要采用合适的数据压缩算法、数据加密算法等。
常见的数据传输方式有TCP、UDP等。
TCP是一种面向连接、可靠的数据传输协议,在数据传输中包含了数据校验、确认、重传等机制,适合传输大量数据。
UDP则是一种无连接、不可靠的数据传输协议,速度比TCP更快。
在实时通讯中,我们会选择UDP协议,因为在实时通讯中,数据传输的时效性更加重要。
三、消息机制即时通讯软件的消息机制是实现即时通讯的关键,消息机制需要满足即时性、可靠性、安全性等特点。
常见的消息机制有点对点通信、广播通信等。
点对点通信即为两个用户之间的直接通信,这种方式下可建立双向通信,在通信效率上更加高效。
广播通信一般为一方发送到多个接收方,适合在需要实现大规模用户交互时使用。
四、UI设计即时通讯软件的UI设计需要符合人性化设计,保证操作简单易懂、用户体验良好。
UI设计需要注意以下几个问题:1. 界面友好化,让用户能够直观地进行操作。
2. 易于使用,用户操作简单,找到需要的功能更加快捷。
3. 风格统一化,整体设计的风格统一,让用户感受到一种整体性。
毕业设计论文--聊天系统的设计与实现
毕业设计论⽂--聊天系统的设计与实现南京航空航天⼤学本科毕业论⽂题⽬基于JAVA的聊天系统的设计与实现年级专业班级学号学⽣姓名指导教师职称论⽂提交⽇期基于JAVA的聊天系统的设计与实现摘要⽹络聊天⼯具已经作为⼀种重要的信息交流⼯具,受到越来越多的⽹民的青睐。
⽬前,出现了很多⾮常不错的聊天⼯具,其中应⽤⽐较⼴泛的有Netmeeting、腾讯QQ、MSN-Messager等等。
该系统开发主要包括⼀个⽹络聊天服务器程序和⼀个⽹络聊天客户程序两个⽅⾯。
前者通过Socket套接字建⽴服务器,服务器能读取、转发客户端发来信息,并能刷新⽤户列表。
后者通过与服务器建⽴连接,来进⾏客户端与客户端的信息交流。
其中⽤到了局域⽹通信机制的原理,通过直接继承Thread类来建⽴多线程。
开发中利⽤了计算机⽹络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server 模式)、⽹络编程的设计⽅法等。
在⽹络编程中对信息的读取、发送,是利⽤流来实现信息的交换,其中介绍了对实现⼀个系统的信息流的分析,包含了⼀些基本的软件⼯程的⽅法。
经过分析这些情况,该聊天⼯具采⽤Eclipse为基本开发环境和java语⾔进⾏编写,⾸先可在短时间内建⽴系统应⽤原型,然后,对初始原型系统进⾏不断修正和改进,直到形成可⾏系统关键词:即时通讯系统 B/S C/S MySQL Socket SwingThe Design and Implementation of Instant Messaging System Based on JavaAbstractAlong with the fast development of Internet, the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared . for example, Netmeeting, QQ, MSN-Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat. The former establishes the server through the Socket, the server can read and deliver the information which client side sends, and can renovate the users tabulation. The latter make a connection with the server, carries on communication between the client side and the client side. With the LAN correspondence mechanism principle, through inheritting the Thread kind to establish the multithreading directly. In the development, it uses the elementary theory knowledge which the computer network programmes. for example, TCP/IP agreement, Client/Server pattern, network programming design method and so on. In the network programming, it realizes reading and transmission of the information, that is,informaton flows realize the information exchange, introduce information flow analysis for realizing a system, in which containes some basic software engineering methods. After analyzes these situations, this chating tool takes Eclipse as the basic development environment and compiles in java language. first, it will establish the system application prototype in a short time. then, for the initial prototype system, it needs constantly revised and improved, until a viable system.Keywords:Instant Messaging System; B/S ; C/S ;MySQL ;Socket; Swing;⽬录第1章引⾔ (1)1.1 开发背景 (1)1.2 开发⽬的和意义 (1)1.3 论⽂研究内容 (2)第2章即时通讯系统的相关研究 (3)2.1 C/S开发模式 (3)2.2 B/S开发模式 (3)2.3即时通讯原理 (4)2.4 Java web 、Struts2、AJAX、JavaScript应⽤技术 (4) 2.5 MySQL数据库应⽤技术 (4)2.6 Socket通信技术 (4)2.7 开发环境的搭建 (5)第3章系统分析 (5)3.1 系统基本功能描述 (5)3.2 可⾏性分析 (6)3.3 系统需求分析 (6)3.3.1功能分析 (6)第4章系统设计 (8)4.1 数据库设计 (8)4.2 系统模块设计 (9)4.2.1 聊天系统⼯作原理图 (9)4.2.2 系统功能模块图: (10)4.2.3 系统⽤例图: (10)4.2.4 活动图: (11)4.3 系统类设计 (13)4.3.1 Message类的设计 (14)4.2.2 截图类的设计 (15)4.2.3 聊天记录类的设计 (16)4.2.4 服务器线程类设计 (17)第5章系统实现 (17)5.1 实现概况 (17)5.2 注册模块 (18)5.2.1 流程图 (18)5.2.2 关键代码 (18)5.3 登录模块 (20)5.3.1 流程图 (20)5.3.2 关键代码 (20)5.4 聊天模块 (25)5.4.1 流程图 (25)5.4.2 关键代码 (25)5.5 ⽂件模块 (29)5.5.1 流程图 (29)5.5.2 关键代码 (30)5.6 ⽤户管理模块 (36)5.6.1 流程图 (36)5.6.2 关键代码 (36)5.7 其他功能的实现 (39)5.7.1 截图功能的实现 (39)5.7.2 聊天记录功能的实现 (40)5.7.3 服务端线程的实现 (42)5.8 ⽤户界⾯的设计 (43)结语 (46)参考⽂献 (47)致谢 ......................................................................................... 错误!未定义书签。
基于JAVA的网络通讯系统设计与实现-JAVA毕业设计论文
本科毕业设计(论文)(20XX届)本科生毕业设计(论文)基于Java的网络通信系统设计与实现20XX年6 月摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
随着网络聊天一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具。
Java是一种程序设计语言,它具有简单的、完全面向对象以及与平台无关的结构,也具有可移植性、高性能和安全性,并提供了多线程的功能,而Java语言最大的成功之处在于它的平台无关性和具有强大的网络编程功能,基于Java网络编程的强大功能,本人将用Java编写一个网络聊天系统。
论文首先论述了系统的开发背景,并对所用到的开发工具与关键技术做了简单的介绍。
接着对系统的研究意义,研究现状及设计目标进行分析,通过对系统需求和可行性进行分析,确定了系统的功能模块,并画出相应的功能结构图、模块图和数据流图。
其次按系统总体设计的结果,对系统中的数据库进行结构设计。
一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket 类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的,而Java提供的多线程功能,用多线程可完成多点对多点的聊天。
数据库管理系统用SQL Server20XX,完成并通过JDBC-ODBC桥访问数据库。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息,传输文件等功能。
界面设计细分化,方便使用者操作和理解。
服务器实现了查询和修改等功能,程序逻辑联系较紧密。
关键词:JAVA,C/S,SQL Server 20XX, 多线程, 数据库管理系统ABSTRACTMore and more developed in the network today, people rely on more and more networks, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java is a programming language with the simple construction which is completely object-oriented 。
即时通讯软件的设计及实现
即时通讯软件的设计与实现1 系统实现模块1.1 效劳端模块效劳端主要包括三个模块:1.网络模块,建立TCP效劳器,负责监听端口,与客户端建立连接并承受和发送数据。
2.应用模块,负责处理从网络模块接收到的数据,予以分析处理,进展转发或对数据库进展操作,并返回相关信息。
3.数据层,数据层用来与数据库建立连接,应用模块必须通过数据层来进展数据库的操作。
图4.1 系统模块图1.2 客户端模块用户端包块以下模块:1.用户界面模块,此模块包括客户端的操作界面,由NetBeans 编写的GUI,进展了较多的美化,采用偏向Vista的风格。
2.网络模块,此模块包括两个小模块,TCP模块用于和效劳器端通讯,而UDP模块则负责和客户端进展P2P通讯。
3.聊天模块,此模块负责在用户聊天时候,对聊天的数据进展封装,对聊天的图片也进展压缩,以适用网络传输。
在承受到聊天数据之后,又会对聊天数据进展分解操作,最后生成聊天内容。
4.群组模块,此模块包括群组聊天、群组的创立、管理、更新等功能。
5.文件传输模块,此模块用于实现客户端之间的文件传输功能。
6.视频聊天模块,此模块用于实现客户端之间的视频聊天功能。
7.系统设置记录模块,此模块用于实现保存聊天记录,登录日志,以及保存系统设置信息的功能。
图4.2 客户端模块图2 数据库设计2.1用户表设计用户表是系统中的根底表,主要用来记录用户注册时的各种信息,此表还有一个从表userlogin表用来记录用户登录和状态信息。
[12]Userinfo表UserLogin表2.2 用户关系表用户关系表是用来保存用户之间的好友关系的数据表,查询好友列表的时候要从此表中查询与自己ID想关联的好友ID,type字段可以设置两者的关系,其中1为好友关系,0为黑。
其他表,如组群表,族群信息表就不在此一一列出。
3 系统模块的详细设计此章节将表达系统局部模块的设计方法和具体实现。
3.1 网络模块的设计实现本系统采用TCP和UDP混合的网络通讯,客户端与效劳器之间登录验证时采用TCP连接,登录之后,客户端与效劳器采用UDP方式保持通讯,客户端和客户端之间采用UDP连接,如果无法直接连接,通过效劳器申请UDP穿透NAT,如果失败,则消息通过效劳器中转传递。
即时通信系统的设计与实现
目录摘要: (1)关键字: (1)1 引言 (1)1.1选题的背景和意义 (1)1.2技术概要 (1)1.3R ATIONAL 统一过程 (2)1.4系统需求和开发环境 (2)2 需求分析 (3)2.1软件系统概述 (3)2.2软件系统功能简介 (3)3 概要设计 (3)3.1概要设计简介 (3)3.2用例图 (4)3.3边界分析图 (4)4 详细设计 (5)4.1总体架构 (5)4.2服务端设计 (6)4.2.1 ChatUserSessionBean的实现 (6)4.2.2 PlutoDataStorage的实现 (8)4.2.3 PlutoMessageEngine的实现 (8)4.3数据库设计 (9)4.4客户端设计 (10)4.4.1 clientcore (11)4.4.2 swingui (13)4.5客户端UI设计 (14)5 本系统的架构分析 (15)5.1J AVA消息服务-JMS (15)5.2JMS消息的组成 (16)5.3JMS消息传递模式 (17)5.4JMS在本系统的实现 (17)致谢 (19)参考文献 (19)附录 (20)ABSTRACT (21)KEY WORDS: (21)即时通信系统的设计与实现摘要:局域网即时通信是一个企业内部进行组织和交流的重要工具。
本文严格按照Rational统一过程构建了一个即时通信系统,重点研究了规范的软件架构过程及关键技术JMS、JMX、EJB和Mbean在本系统中的应用,通过数据包在局域网中的传送、信息处理任务在服务器和客户端的合理分配实现了高效的即时信息交流,提高了企业内部的信息安全性,节约了成本,在企业管理中有重要的应用价值。
关键字:即时通信;统一建模语言;统一软件开发过程;Java消息服务1 引言1.1 选题的背景和意义根据来自Osterman Research的调查报告,已经有84%的企业的网络中使用了不同形式的即时信息软件,到2007年,即时信息软件的使用将会遍及所有的企业[1]。
基于Java语言的即时通讯系统设计与实现
基于Java语言的即时通讯系统设计与实现
杜瑞庆;李一诺
【期刊名称】《电脑知识与技术:学术版》
【年(卷),期】2022(18)31
【摘要】即时通讯系统在日常工作与生活中有着不可或缺的作用。
文中对当下即时通讯软件的现状与痛点进行了分析,并基于此设计一款轻量化的即时通讯系统。
文章使用Java语言,基于C/S架构来探究并进行系统开发,用巧妙的方法使系统突破了局域网的限制,通过系统的客户端、服务端、数据库对其设计进行了介绍,并详细阐述了系统的功能和实现步骤。
【总页数】4页(P29-32)
【作者】杜瑞庆;李一诺
【作者单位】河北工程大学
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于云计算的OMS即时通讯系统设计与实现
2.基于Comet的Web即时通讯系统设计与实现
3.基于Comet的Web即时通讯系统设计与实现
4.基于Aj ax的企业级即时通讯系统设计与实现
5.基于麒麟系统的即时通讯系统设计与实现
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于JAVA的即时通讯系统的设计与实现作者:王光琼,梁弼,朱兆兵来源:《软件导刊》2011年第11期摘要:简要阐述了即时通讯(Instant Messaging,简称IM)的特点、开发现状及应用,并对IM进行详细分析和设计(包括数据库),最后通过JAVA语言实现了一个IM的具体应用。
关键词:即时通讯;面向对象;类;多线程中图分类号:TP311.52 文献标识码:A 文章编号:1672-7800(2011)011-0092-030 引言近年来,随着社会的不断发展,无论是个人还是企业等组织机构,对信息的交流方式也在不断发展,即时通讯服务业因此应运而生。
据2011年7月19日,中国互联网络信息中心(CNNIC)发布《第28次中国互联网络发展状况统计报告》显示,截至2011年6月底,中国网民数量达4.85亿,即时通讯使用率为78.6%。
由此可见,IM成为了人们通过计算机进行信息交流的重要工具。
IM受到用户的推崇和喜爱,应用也是越来越广泛,但是在计算机软件开发中,有一个公认的瓶颈存在,就是平台差异性。
它造成了IM软件在不同的平台上不能够通用的问题,然而随着JAVA语言的出现,打破了这一瓶颈,使得开发更专注于软件本身而不是平台。
这也是采用JAVA语言开发IM的主要原因。
1 即时通讯的概念、特点及开发现状所谓即时通讯(IM),实际上是一个终端服务。
它允许两人或多人使用网络即时地传递文字信息、图片信息以及进行语音与视频交流。
大部分的IM服务还提供状态信息显示的特性──显示联络人名单,联络人是否在线及能否与联络人交谈等。
目前在互联网上受欢迎的IM软件包括QQ、MSN、ICQ等。
IM最大的特点就是及时性,随着IM的不断发展,出现了许多新的特点,包括良好的交互性和娱乐性能,安全性等。
自1990年ICQ的出现,实质性的IM的发展已经有20多年,自1999年腾讯公司推出QQ 算起,即时通讯在中国的发展已有10多年的时间,已经经过了萌芽阶段,进入快速发展阶段。
目前国内面向个人的即时通讯产品主要有腾讯QQ、微软MSN、网易泡泡、新浪UC、ICQ、移动Fetion等,这些IM软件大多是建立在windows平台开发。
而应用于其它操作系统平台的IM软件并不多见,目前IM的开发现状主要表现在:IM的多媒体化,各个IM工具不断加强了其多媒体服务应用。
即时通讯业务承载的设备趋于多样化,用户通过PC、手机、PDA以及其它设备等都可以使用即时通讯服务。
跨平台应用,在不同的操作系统平台上实现IM应用。
2 IM的分析及设计IM中涉及到的网络通信协议主要有TCP和UDP,涉及到的网络通信技术有P2P。
IM网络通信解决方案通常有两种:公网通信的混合网络模式解决方案和局域网通信的网络解决方案。
现仅就IM客户端的用例分析和设计进行说明。
在IM客户端,包含有客户端配置、用户注册、用户登录、用户好友信息管理、用户个人信息管理、聊天共六个主要的功能块,在各功能块中又包含有更多的子用例。
仅列举“聊天”用例分析。
聊天是IM客户端里面最基本也是最重要的功能,聊天方式有与单个用户私聊和与多个用户群聊。
在聊天过程中有一个扩展功能就是传输文件或者视频、音频,这三个功能是聊天中可选的。
经过分析我们确定聊天用例的主要有私聊和群聊两个用例,文件传输、视频传输、音频传输为扩展用例。
在聊天当中设计的对象比较多,首先需要的一个对象就是好友管理对象(FriendsManage),要与好友聊天需要知道好友的基本信息,比如说地址,端口等;需要一个聊天管理对象(ChartManage),聊天管理对象负责对聊天的输入,聊天的发送管理等;消息对象(MegManage),它主要负责消息的发送和接受;需要一个聊天记录管理对象(RecodeManage)用例管理聊天的信息;还需要一个文件对象(FileManage)来存储聊天信息;还有一个文件对象(File),它是基本的文件存储实体。
聊天的用例设计过程如下:客户需要向好友管理对象发送一个选择某个好友的消息、好友管理对象向用户返回好友基本信息、客户向聊天管理对象发送要与好友聊天的消息。
聊天管理对象向消息对象发送传输聊天内容的消息,再向文件管理对象发送存储聊天信息的消息。
文件管理对象向文件对象写入文件。
消息管理对象自调用发送聊天内容,再返回发送状态信息。
聊天管理对象向用户返回状态信息。
聊天用例设计的时序图如图1所示:3 数据库分析与设计IM中包括有用户、好友、聊天、图像、文件、服务器、管理员、消息等实体,图2是建立的数据库概念模型。
4 IM的JAVA实现IM在应用中分为有服务器和无服务器两种模式,因此在客户端设计中就要实现在这两种不同模式下的即时通讯。
另外,在某些时候可能使用即时通讯的客户比较多,这时候就要考虑到服务器的承受能力和网络延迟,因此,在对服务器的设计中采用了多线程的方法,为每个客户端开辟一个线程进行服务,这也要求服务器硬件部分具有较大和较快的处理能力。
4.1 公共类抽象在服务器端和客户端可以抽象出公共类,这些类包括用户类(User)、消息类(Chartcontext)、数据包类(Datapackage)、文件类(File)。
下面仅对聊天信息类进行说明。
聊天信息类(chartcontext):在不同终端之间传输的聊天信息可以设计为一个类,这个类中包含有聊天信息的类型、聊天的内容、发送端IP、发送端端口、接收端IP、接收端端口、发送者ID、接受者ID等属性。
具体设计如下:public class chartcontext implements Serializable //序列化接口{private String context;//聊天内容private InetAddress clientip;//发送端IPprivate int clientport;//发送端端口private int acceptxunjieid;//接受端IDprivate int sendxunjieid;//发送端IDprivate int type;//聊天类型public chartcontext() //构造函数}4.2 重要算法实现在实际实现中,需要一些具体特殊的算法来实现功能,如服务器的网络连接管理,聊天的窗口管理,数据库查询等。
下面仅列出数据库操作的算法实现。
对数据库操作是服务器常做的操作,为了方便对数据库进行操作,可以通过封装数据库操作的方法来提高程序效率。
将数据库日常的查询、删除、修改、更新等操作封装在一个类中,当服务器某一操作需要用到数据库操作时,直接调用该封装的操作即行。
这样也提高了代码的可维护性。
数据库操作封装代码如下:public class dbconn {private Connection conn;//定义数据库连接private Statement stmt;//定义结果对象private ResultSet rs;//记录集private String sql;//sql语句private db newdb;//数据库基本信息对象public dbconn() {this.newdb=new db();}public boolean dbconn() {//创建数据库连接try {}return true;}public boolean insert() {//插入操作try {} return true;}public boolean update() {//更新操作try {} return true;}public boolean delete() {//删除操作try{} return true;}public boolean select() {//查询操作try{}catch(SQLExceptionex){} } return true;}4.3 客户端的JAVA实现客户端是用户实现聊天的终端,通过与服务器和其它客户终端的交互来实现即时通讯。
本客户端既可以脱离服务器工作实现简单的无服务器模式工作,也可以使用服务器通过服务器模式实现更高级的通讯功能。
客户端的设计也是在一定程度上使用了MVC模式让代码与GUI界面分离,使得维护更简单。
本设计中主要设计了基于TCP网络数据传输,基于UDP的网络数据传输,基于组播的网络数据传输。
聊天功能在具体JAVA实现中,需要实现对消息的格式封装和解析以及显示,具体的传输是由网络传输部分完成。
部分代码如下:发送聊天:public void sendchart() {if (this.jTextArea2.getText().toString().equals("")) {javax.swing.JOptionPane.showMessageDialog(null, "不能发送空消息");} else {this.jTextArea1.append(new timer().getsystemtime().toString() + "\\n");this.jTextArea1.append(this.mynicheng + "(" + String.valueOf(this.myxunjiid) + ")");this.jTextArea1.append(":");this.jTextArea1.append(this.jTextArea2.getText() + "\\n");this.outchart.setContext(this.jTextArea2.getText().toString());this.outchart.setAcceptxunjieid(this.xunjieid);this.outchart.setSendxunjieid(this.myxunjiid);this.outchart.setClientip(this.ip);this.outchart.setClientport(this.port);this.jTextArea2.setText("");if (!(this.lm.sendmessage(this.outchart))) {this.jTextArea1.append(new timer().getsystemtime().toString() + "发送失败\ n");}接收聊天代码实现略。
5 结束语设计过程中我们先解决了系统的架构问题,从现实角度分析了即时通讯的应用模式,主要包含局域网模式和互联网模式。