基于java+mysql+socket的即时通讯软件设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+mysql+socket的即时通讯软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:


  • 基于java+mysql+socket的即时通讯软件设计与实现(毕业论文+程序源码)
  • 1、项目简介
  • 2、资源详情
  • 3、关键词:
  • 4、毕设简介
  • 5、资源下载


1、项目简介

  1. 即时通讯软件即所谓的聊天工具,其主要用途是用于文字信息的传递与文件传输。使用ECLIPSE作为即时通讯软件的开发工具,使用Socket建立通讯渠道,多线程实现多台计算机同时进行信息的传递,SWING技术等进行实际开发相对比较合适。通过一些轻松的注册登录后,在局域网中即时聊天便可以成功进行。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:8616个字24页
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图


3、关键词:


即时通讯软件,局域网聊天,Java,Socket


4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

引 言
1.1 开发背景
省略

即时通讯软件即所谓的聊天工具,作为进行文字传输、文件传输的工具被使用在互联网的客户端上。从专业角度来介绍,即时通讯软件一般分为依赖于服务器的与依赖于P2P的[2]。
从现状来看,互联网上深受用户喜爱的即时通讯软件主要有以下几个:微信、QQ、YY、飞秋等等[5]。

1.2 开发意义
省略

Socket是即时通讯系统实现的核心技术,可以通过端口设置与IP地址来构建通讯的桥梁,以便各类信息的发送与接收。在这个软件中可以与陌生用户或者你已加入用户列表中的用户进行信息的传递来完成基本的交流,系统在后续中是会继续进行功能的完善与拓展,来实现文件传输,语音传输等各种方式来加强用户的体验,为用户带来极大的便利。

2 系统设计相关技术
2.1 Java语言
博网即时通讯系统之所以最终采用Java语言进行开发,主要是由于该语言可以跨平台的特性使得其在开发语言中处于优势地位,并且简单易用和安全性也是Java的重要特点[4]。正因如此游戏开发、安卓开发、互联网web系统开发等领域都有Java的身影。它不但包含了C++语言中Object Oriented的特性,而且优化了C中非常困难复杂的指针、多继承等特点,同时又增加了垃圾回收的机制(GC)简化了程序员的开发,其在相应程序运行完成后会自动销毁与清空被占用的内存,而这些种种的基本特点确赋予了它更加优异的性能,因此博网即时通讯系统选用Java语言进行开发。

2.2 MySQL数据库
MySQL的是使用C和C++编写的轻量级关系型数据库,经过了多种编译器处理之后代码的可移植性非常高。支持了多种操作系统的同时还为各式各样的编程语言提供了应用程序接口。从算法的角度优化执行SQL语句的能力,很大幅度的提高了执行效率。提供用管理工具。是一个可以处理千万级别记录的即强大又轻量的数据库软件[5]。

想对于其他数据库,比如Oracle之类来说,MySQL的规模是偏小的,但同时它也是较轻便的,它对计算机资源占用较少,确能提供用户和一些规模不大的企业足够的功能,所以MySQL是足够我们使用的同时减轻了我们的成本。

2.3 Socket
Socket是用于连接通信的双方的开发技术,使其能够构建通信的桥梁,进而进行信息的传递,当一方连接另一方时要确认对方的IP与Port,而服务器端则需要打开相应的端口号等待客户端进行连接[6]。

具体的说:在运行该系统时,需要先启动服务器端,以打开服务器端的连接端口并进行监听,等待其他的用户链接,当其他用户的链接信息传来时,该用户就会被赋予相应的端口号,然后与服务端进行链接,服务器端与客户端之间的通信渠道而后被建立,构建成功的通信渠道,可以通过编写socket来相互通信,若有新的客户端请求来链接,则服务器端自身则需要获得一个新的端口号来执行被占用的旧的端口号的监听工作,以便于应答新的客户端请求,真正实现多客户的服务功能,使多个客户可以通过服务器作为媒介从而进行轻松且简便的聊天与各种功能[7]。

Socket程序的工作过程:
1、建立Socket连接:,当一方连接另一方时进行通信时要确认对方的IP与Port,然后发送请求并等待回应确认是否已经接受到自己的链接请求。
2、数据通信:使用上一步所建立的连接通道进行信息的传输与交互。
3、关闭:信息的传输与交互完毕后,将构建的连接通道拆除,以释放资源,方便别的客户端进行链接。
Socket信息交互原理图如图1所示:

java集成IM即时通讯 java即时聊天程序_java

图1 Socket信息交互图

3 系统需求分析
3.1 可行性分析
省略

1.技术可行性
互联网技术的迅速发展,使得互联网成为了各类企业必须涉及的部分,同时互联网技术的发展更为成熟,使得各种基于互联网开发的信息系统变成了企业公司、部门单位提高工作效率的优秀方法[8]。另外,即时通讯系统的开发已经很多的实例,技术的要求度并不高,各类进行开发的软件获取并不困难,所以成功开发是可行的。
(1)系统软件
操作系统: 能够支持Eclipse运行的各类系统均可
开发软件:myeclipse 或者 eclipse
Web Server:JBoss、Weblogic或者tomcat
JDK版本:jdk 6.0 以上版本
(2)开发语言
Java是一门简单易用而且功能强大的技术,由于该语言可以跨平台的特性使得其在开发语言中处于优势地位,它不但包含了C++语言中Object Oriented的特性,而且优化了C中非常困难复杂的指针、多继承等特点,同时又增加了垃圾回收的机制(GC)简化了程序员的开发,及时释放存储空间让开发者不在为此耗费精力。

2.经济可行性
省略

3.法律可行性
省略

4.概述
省略

3.2 需求分析
省略

Server方面:
运行监控,打开Server,执行对其它用户的监控。
关闭监控,关闭Server,不在对其它用户进行监控。
阅览用户信息,阅览已登录用户信息。
管理用户,强制使被选择的用户退出登录状态。

Client方面:
申请账号功能,使用者有权限在启动客户端后进行注册以及登录。
添加好友功能,用户将陌生人加为好友。
删除好友功能,用户有权限可以删除好友。
修改个人资料功能,用户有权限可以修改以往设置的所有基本信息。
修改头像功能,用户有权限能够修改自己现在的头像。
即时聊天功能,用户之间有权限与拥有账号的用户进行即时的聊天。
查看聊天记录功能,用户有权限查看与好友过往的聊天记录。

程序工作原理图如图2所示:

java集成IM即时通讯 java即时聊天程序_java_02

图2 程序工作原理

3.3 系统流程图
客户端原理图如图3所示:

java集成IM即时通讯 java即时聊天程序_网络_03

图3 客户端流程图

服务器端原理图如图4所示:

java集成IM即时通讯 java即时聊天程序_mysql_04

图4 服务器端流程图

3.4 非功能性需求
省略

4 系统设计
4.1 系统功能结构
该即时通讯系统是有两部分组成,服务器端可以通过启动来监听客户端信息的传递与执行各种对客户端的监控,客户端则是通过人性化与美观的界面来使用户可以易上手和舒适的体验快速与简便的通讯[9]。

应用从这两部分分别进行了详细的功能设计,服务器端功能主要为启动对于客户端的监听与关闭监听,还有对于已注册用户的实时监控与管理,客户端功能主要为使用者该软件账号的申请与进入操作界面,还有自己资料的修改以及对于其他账号好友的添加与管理等等。

软件功能层次图如图5所示

java集成IM即时通讯 java即时聊天程序_mysql_05

图5 软件功能层次图

4.2 数据库设计
数据库是该即时通讯系统的中枢结构,进行信息处理的各个部分都是在数据库的基础上的,从而能够达成对于各类数据安全完整的存储,并进行合理的运用[10]。有必要时可以设置数据字典,数据字典对于开发非常的有效,它的存在避免了程序员之前互相作繁杂的沟通,大家按照统一的标准来进行,即保证了效率也提高了整体的可维护性,下面是必须要注意的一些关键点:
(1)性能:数据库必须具有足够能力进行数据管控;
(2)兼容性:数据库是否支持开发所需的其他环境;
(3)封闭性:数据库对于数据的存储与处理是否足够保密;
(4)可靠性:数据库能不能承担对于数据的管理与传递;
(5)并行性:数据库是否可以并行运行在多节点上;
(6)可操作性:数据库是否在使用前需要大量时间学习。
根据该即时通讯系统开发时的各类现状需求,我们最终选择了MySQL作为信息处理的载体。

4.2.1 概念结构设计
我们将系统中用到的各类数据抽象成各种数据体系,这些数据类型所组建成的体系正是概念结构的构建过程,进而组建全局的概念结构。

java集成IM即时通讯 java即时聊天程序_即时通讯_06

图6 用户信息实体属性图

java集成IM即时通讯 java即时聊天程序_即时通讯_07

图7 好友实体属性图

java集成IM即时通讯 java即时聊天程序_mysql_08

图8 账号实体属性图

4.2.2 逻辑结构设计
逻辑结构设计则是把上一步设计好的E-R图结构转换为系统中相应的各类数据对应的逻辑结构。而E-R图向关系结构的过度,正是将各类实体与实体的对应关系进一步具体化,这是必要的,也是一个难点所在。

实体之间的关系是需要分为下述几种角度分析的:
如果博网即时通讯系统中实体间联系是1:1,则关系模式是自由的,可以与其他任何的关系模式结合。

如果博网即时通讯系统中实体间联系是1:n,则应将单独那一端的关系码列入其他端构建的各类结构中。

要是博网即时通讯系统中实体间联系是n:m,则应将各端与各端的实体对应关系表清,实体的码与联系的属性正是关系的属性。
基于上述原则,进而完成模型的转换。

4.2.3 物理结构设计
下述其遵守规则:
(1)避免各类数据的交叉而导致内存的浪费,最好建立数据字典。
(2)开发与设定相匹配,避免导致混乱。
(3)数据之间的关系必须是合理的,是可以在后续功能的拓展后不会产生影响的。
基于以上的考量,对本软件的信息结构如下:
表1 基本信息表

java集成IM即时通讯 java即时聊天程序_java_09


java集成IM即时通讯 java即时聊天程序_mysql_10

表2 好友表

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_11

表3 账号表

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_12

5 系统实现
本系统运用socket开发技术作为构建信息传递的通道,MySQL作为数据库。只需在eclipse或者myeclipse环境中开发程序即可。

博网即时通讯系统在设计过程中数据的复杂程度并不高,所以MySQL已经可以满足需求,所以我们使用该软件作为数据的承载体。

5.1 系统运行环境和开发平台

表4 系统运行环境和开发平台需求表

java集成IM即时通讯 java即时聊天程序_即时通讯_13

5.2 系统实现界面

5.2.1 控制端操作页面

图9是控制端操作页面,通过运行相应的文件,即可打开该服务器端界面,在这个界面可以对已经注册过的用户进行管理与监控,也可以对服务器进行的基本管控,在对话框中查看一些基本日志。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_14

图9 控制端操作页面

图10是打开运行后的服务器页面,能够看到可以对用户进行管理,并在对话框中会产生一些辅助日志。

java集成IM即时通讯 java即时聊天程序_网络_15

图10 服务器端上线页面

5.2.2 用户端操作页面

用户申请账号如图11所示,是用户端进行账号申请的页面,用户需要在该界面进行相关信息的完善,然后即可注册成功。

java集成IM即时通讯 java即时聊天程序_mysql_16

图11 用户申请页面

图12是申请成功界面,申请成功后可以获得登录号码。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_17

图12 用户申请成功界面

用户登录如图13所示,可以看到在该对话框中输入一些必要的信息即可完成登录,进入下一个界面。

java集成IM即时通讯 java即时聊天程序_mysql_18

图13 用户登录界面
图14是登陆后的用户界面,能看到没有任何好友,所以需要自己进行添加。

java集成IM即时通讯 java即时聊天程序_网络_19

图14 用户登录成功界面

添加好友如图15所示,这是用户将陌生人加入列表中进行交互,搜索相应用户账号,则可以搜索到该账号的持有者,然后加入列表。

图15 用户搜索账号页面

图16是用户进行已搜索到账号并进行添加的界面,当对应用户信息显示出来时,可以先查看该用户信息再选择是否添加该账户。

java集成IM即时通讯 java即时聊天程序_网络_20

图16 用户账号添加页面

用户与其他用户进行交互方式如图17所示,是各位用户正在进行交互选择的页面,分为:信息传递,好友操作等等功能。

java集成IM即时通讯 java即时聊天程序_mysql_21

图17 用户好友交互界面

图18是用户根据对话框进入相应界面,然后进行下一步操作选择的用户基本操作页面。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_22

图18 用户修改资料界面

更换头像如图19所示这是用户变更头像的界面。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_23

图19 用户修改头像界面

图20是用户管理个人基本信息的界面。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_24

图20 用户修改信息界面

即时聊天如图21是用户正在与其他用户进行信息的交互。

java集成IM即时通讯 java即时聊天程序_即时通讯_25

图21 即时聊天界面

图22是用户之间的聊天界面,可以看到正在进行相互交流

java集成IM即时通讯 java即时聊天程序_mysql_26

图22 交互界面

信息传递页面如图23所示,是各位用户进行信息传递的基本页面。

java集成IM即时通讯 java即时聊天程序_mysql_27

图23 信息传递页面

图24是用户的基本信息、控制端与各个用户均可以对其他用户进行基本信息的阅览。

java集成IM即时通讯 java即时聊天程序_即时通讯_28

图24 用户基本资料界面

移除该用户如图25所示,是用户将以添加账户进行移除的页面,用户有权限进行该操作。

java集成IM即时通讯 java即时聊天程序_网络_29

图25 用户删除好友界面
6 系统测试
省略

6.1 测试内容
1.文档资料的核查:博网即时通讯系统需遵循相关规则进行严密的核查;
2.余量要求:博网即时通讯系统测试的信息量,该方面不能低于使软件能够正常持续运行的基本指标;
3.功能测试:博网即时通讯系统前端与后端的测试必须进行各个功能的全面测试,不能出现疏漏;
4.性能测试:博网即时通讯系统在该方面的测试必须从满足用户需求这个基本点开始,对于系统的稳定性,各类突发情况的处理等等性能进行多方面充足检测;
5.强化测试:博网即时通讯系统的正常使用必须考虑到大量用户而产生的压力,所以对该方面同样必须进行足够的预期计算;

6.2 测试预期结果
在即时通讯系统中,初步预估目标应是:
控制端:
控制端能够打开并成功对其他用户进行监控。
控制端能够在页面上对在线的账户进行管理。

用户端:
用户可以申请账号并进入用户端界面。
用户可以改动其基本信息。
用户可以将已申请账号的用户加入自己的列表中
用户可以与列表中的其他账号进行交互。
用户有权限重复阅览过往的信息传递记录。
用户可以将其他用户移出自己对话列表。

6.3 测试用例
软件测试是一项极其重要且不可缺少的工作,在某些看上去不起眼的细节上通常会发生严重的软件故障。所以我们决定使用黑盒测试对其进行检测,黑盒测试的原理是将系统当成一个黑盒,不去重点关注内部的构造,用结果来证明功能是否完备。这种测试方式简单高效,但是对用例的丰富程度要求高,只要全面的多角度的用例才能更好地得到结果。根据测试用例测试结果如下:

1.服务器启动
旋转图片测试表如表5所示:

表5 旋转图片测试表

java集成IM即时通讯 java即时聊天程序_网络_30

2.用户注册

用户注册测试表如表6所示:

表6 用户注册测试表

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_31

3.添加好友

添加好友测试表如表7所示:

表7 添加好友测试表

java集成IM即时通讯 java即时聊天程序_java_32

6.4 测试结果
在系统功能基本完成后,对该系统进行了全方位的整体功能进行了大量的测试,在测试的实施过程中产生大量的BUG与一些没有注意到的错误,后经过对于代码的审查与调试,已将程序错误基本解决,后有进行的充足的各类测试,现系统已完成各项测试,成功达到了预期所设定的目标。

java集成IM即时通讯 java即时聊天程序_java集成IM即时通讯_33

图26 并发数与响应时间关系图
在图26中能够观察到,当在使用的客户数偏小是,软件的应答效率很高,其延迟很低,但客户量的逐渐上升时,响应时间并没有出现很高的提升,所以在性能方面,该系统已满足用户使用需求。

在根据得到以上各类信息后,本软件测试阶段的工作顺利完成,系统已经基本可以实现预期的效果。

7 结语
省略

参考文献
[1] 罗军舟等编著.《TCP/IP协议及网络编程技术》[M].清华大学出版社.2004年.
2萨默维尔.软件工程(第九版)[M].机械工业出版社,2011.05
[3] 黄永峰等著.IP网络多媒体通信技术[M].人民邮电出版社.2003年.
[4] 昊斯特曼 (Horstmann Cay S.),Gary Cornell著 叶乃文, 邝劲筠, 杜永萍译 JAVA核心技术[M]. 电子工业出版社,2011.
[5] 祝定泽,张海.My SQL核心内幕[M].北京:电子工业出版社.2009
[6] 姬猛洛,李军译. 即时消息传递系统编程源代码解析.北京:电子工业出版社,2002 .
[7] 张海藩.软件工程导论(第四版)[M]. 北京:清华大学出版社,2002
[8] 徐晓春. Java即时通讯系统[M]. 长春:吉林大学,2007
[9] 王大锋. P2P即时通讯软件监控系统的研究与实现. 北京:中国科学院研究生院软件研究所,2005.
[10] 庄成三,洪玫,杨秋.数据库系统原理及其应用[M].电子工业出版社,2000


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。