基于JAVA的即时通讯软件的设计毕业论文
2021-07-12 22:04:54
摘 要
即时通讯在现在的网络使用是十分频繁的。本文根据自己在毕业设计中的选题基于Java的即时通讯软件的设计,简单的阐述了一款即时通讯软件的基本功能,和一些简单的实现方法。具体到软件的开发流程,开发的工具选择,后台数据库选择,软件模式的选择以及服务端和客户端分别需要实现的功能,以及在逻辑上阐述了各模块实现的具体方法。本次毕业设计所得结果对于即时通讯软件或系统的开发完善具有重要的指导意义。
论文主要研究了基于Java的即时通讯软件的设计开发的全过程。
关键词:java;即时通讯;多线程;socket;C/S模式
Abstract
Im now used in the network is very frequent. According to the design of the Java based instant messaging software, this paper briefly expounds the basic function of the instant messaging software, and some simple realization methods. Specific to the software development process, selection of development tools, background database, select, software model and the choice of server and client were required to achieve the function, and in logic describes the each module to achieve the specific method. The results of this graduation project have important guiding significance for the development and improvement of instant messaging software or system.
This thesis mainly studies the whole process of the design and development of the instant messaging software based on Java.
Key Words:java;IM;multi thread;socket;C/S mode
目 录
第1章 绪论 1
1.1 研究背景与意义 1
1.1.1 研究背景 1
1.1.2 研究意义 1
1.2 国内外研究现状 1
1.2.1 国内研究现状 2
1.2.2 国外研究现状 2
1.3 研究平台选择 2
1.3.1 软件应用模式的选择 2
1.3.2 C/S模式介绍 3
1.3.3 数据库系统的选择 3
1.4 论文组织 4
1.5 本章小结 4
第2章 相关技术及协议 5
2.1 面向对象Java编程语言的简介 5
2.2 相关协议介绍 5
2.2.1 TCP/IP协议 5
2.2.2 UDP协议简介 5
2.2.3 TCP协议与UDP协议的比较 6
2.3 利用Socket方式的编程 6
2.4 本章小结 6
第3章 系统需求分析 7
3.1 实时信息交流的基本需求 7
3.1.1 实时信息格式的需求 7
3.1.2 可靠性需求 7
3.1.3 性能需求 7
3.2 实时信息在协议方面的需求 7
3.3 实时信息在安全方面的需求 7
3.4 实时信息的加密处理以及鉴别方法 8
3.5 即时通讯系统需求 8
3.5.1 注册需求 8
3.5.2 通讯需求 8
3.6 本章小结 8
第4章 系统总体设计 9
4.1 实时通信软件的原理 10
4.2 软件设计流程 11
4.3 功能模块划分 11
4.4 多线程设计 12
4.4.1 Java在多线程上的实现 13
4.4.2 服务器端的多线程 14
4.4.3 客户端的多线程 14
4.5 本章小结 14
第5章 数据库设计 15
5.1 数据库系统的选择 15
5.2 C/S模式数据库的实现方法 15
5.3 数据库表的设计 15
5.4 数据库表的建立 15
5.5 本章小结 15
第6章 系统设计与实现 16
6.1 主服务器类的设计 16
6.2 服务端登录验证模块 16
6.3 服务端新建用户模块 16
6.4 服务端好友处理模块 16
6.5 客户端用户注册模块 17
6.6 客户端用户登录模块 18
6.7 客户端主程序设计 19
6.8 客户端消息通信的设计 19
6.9 客户端好友处理模块 20
6.10 本章小结 20
第7章 系统测试 22
7.1 系统的配置与使用 22
7.2 系统测试 22
7.2.1 单元测试 22
7.2.2 系统测试 22
7.3 本章小结 22
第8章 总结与展望 23
8.1 总结 23
8.2 展望 23
致谢 24
参考文献 25
第1章 绪论
通讯交流在当今社会对于每一个人而言都可以说是不可或缺的。通讯交流的方式有很多种,当面交流、书信、短信息、电话以及一些电邮和一些社交软件等等。
本文基于设计的题目,在软件的编码实现中使用的是完全面向对象的Java编程语言。
1.1 研究的背景与意义
随着世界互联网和电脑、手机等移动端上网设备用户的持续高速增长,网上交流的需求也相应急速增长,导致了即时通讯(IM)软件的开发热潮 。
1.1.1 研究背景
国内外即时通讯软件犹如如后春笋一般,根据各种不同的功能和需求开发出来的即时通讯软件也是各具特色。即时通讯软件早已摆脱了单一的即时通讯交流的功能,成为集新闻,游戏,网络社区,文件共享,电子商务,在线点播等诸多功能与一体的强大软件。
1.1.2 研究意义
在对目下当今市面上盛行的即时通讯产品进行深入研究和查阅大量文献资料的基础上,我以为这些产品还或多或少存在着一些问题和缺点。因而,应用本人曾经所学过的编程语言--完全面向对象的Java语言来编写程序,实现特定的即时通讯功能,以加深我多Java的理解,针对这些问题开发一款别致的即时通讯产品,不但会推动即时通讯领域的继续发展,也具有庞大的经济和社会效益。
1.2 国内外研究现状
如果要问到网络时代发展最快的部分,毋庸置疑的,谜底必然是即时通讯。即时通讯软件的及时交互、资费低廉乃至免费等长处深深地吸引着用户,已经成为网络生活中不可或缺的一部分,例如大家都很熟知的腾讯公司的QQ,微软公司的MSN等。人们利用这些软件进行信息交换、认识新的好友、进行游戏娱乐、完成不同地域的及时语言、声音、视觉上的及时交互。而且,大家也都认为此类软件可以帮助生产力的提高,很多的企事业单位通过使用它,来提升业务的办理效率。此类聊天软件设计的初衷是为普通用户提供日常通讯需求[1]。它在使用上是非常广泛的,已经不仅仅是一款技术工具了,而是被大家广泛认可为网络时代用以交流的方式。即时通讯不仅能加强网络之间的信息沟通,最主要的是可以将网站信息与聊天用户直接联紧在一起[2]。
1.2.1 国内研究现状
说到即时通讯,在国内,我们立马想到的一定就是腾讯了,靠着一个小小聊天工具QQ翘起整个中国IT的公司。QQ软件是目前国内大家都广泛使用的用以实时通信的软件,曾经叫做OICQ(即OPEN-ICQ),因为担心被美国的ICQ以侵犯版权为名控告,而且中国的大多用户都已经乐于用QQ这个比较可爱并且易于记忆的的名称,所以腾讯公司干脆就将OICQ改名作QQ。听说,因为改名这个事腾讯公司还专门去买下了QQ.COM域名,当然用去了近百万元的人民币才搞定。由于青年和少年们十分喜爱它完美的功能和漂亮的界面,才让它可以在仅仅几年的时间里快速发展壮大,一跃为国内乃至全世界范围内用户最多的面向非企业的通讯交流软件。
网易公司(网易POPO):POPO(泡泡)是由网易(Net Ease)开发的一款免费的多媒体即时通讯软件。它除了能即时聊天外,还拥有许多特色功能如自建聊天室、自设软件皮肤、网络文档分享、穿透防火墙的超大文件传输、视频聊天、语音聊天等功能。其实,网易公司才是国内业界里最先将视线投向即时通讯软件的IT大佬,恰是因为它开发的软件在文件传输上可以实现超大文件突破防火墙的强大功能,所以吸引了一些需要频繁传输文件的企业用户使用。
当今世界正处于信息时代,计算机和通信网络是这一时代所谓“信息基础设施”[3]。
1.2.2 国外研究现状
雅虎(Yahoo!Messenger):由雅虎公司自行研发的雅虎通是一款免费的即时通讯软件,当年因为其免费易用也是流行一时,最早叫做Yahoo!Pager。
微软(MSN Messenger):MSN Messenger是最多人使用的即时通讯软件之一,当下的版本除有基础的文字信息交流以外还实现了视频会议功能、语音交谈功能、多人会议功能等等的一些其他扩展的功能。
eBay(Skype):这是一款实现语音通信的实时交流软件,也是一款相对实用的通信交流软件,它利用了P2P的方式与其他的客户进行连接,能过完成相当高质量的语音上的通信和利用网络实现的电话交流。
谷歌(Google Talk):谷歌公司自行研制的一个通信交流工具,当然也是实时的。它可以完成一些文字消息和一些语音信息的互动沟通。
1.3 研究平台选择
1.3.1 软件应用模式的选择
软件应用模式也叫做计算的结构,指的是应用的体系的结构,也称为是系统的层次结构、功能模块的结构等。能够大致的划分成这样:
(1)主机——终端模式
(2)单机模式
(3)客户机(C)和服务器(S)模式
(4)浏览器(B)和服务器(S)模式
本文所讲述,即时通信软件的设计是基于相对传统的客户服务器模式,也就是第三种,也就是目前应用最广泛的C/S模式。
1.3.2 C/S模式介绍
C/S模式,也即是大家常说的用户和服务模式。作为软件的系统的体系的结构,它能够充足体现双方在硬件上的优点,通过把工作按照一定方式下发到用户机和服务机来完成,来减轻应用软件在通信的时候的花销。如今相当多的软件系统采用了这样的双层的结构,因为当今的软件都是正在向着分布式的网页应用的方向靠近,网页和这样的双层结构应用都能够完成类似的功能处理,软件中各个模块之间共同利用同一逻辑上的组件;所以,几乎所有的用户都能够利用新的以及现在已经拥有的系统,利用软件中业已存在的逻辑能够轻松开发出其他的软件。
C/S 模式在实现上是利用把整体工作划分为很多个的小块的方法,将任务分发给许多的机器来完成。服务器则只要求承担操作数据库相关的一些比较重要的任务。服务器端要获得持续运行能力,就必须要有容错能力和错误检测功能[4]。
客户机和服务机往往是在地理上相隔遥远的机器,客户机需要实现的是将用户的请求提交给用于服务的程序,以及把用于服务的程序所响应的消息通过一些必要的处理,显示给用户;提供服务的程序的工作则是监听客户端所发来的服务的请求,通过一系列的必要的处理,然后把处理回送到请求发起方。