Java即时聊天系统的设计与实现.doc
《Java即时聊天系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《Java即时聊天系统的设计与实现.doc(47页珍藏版)》请在三一办公上搜索。
1、C/S架构的即时聊天系统的设计与实现摘要:随着信息时代的飞速发展,尤其是互联网技术的兴起,使人们愈来愈倾向于通过网络来交流、传递消息。网络即时聊天系统正是这样一个被广泛应用的媒介。借助它,人们可以方便地进行实时对话,文件传送等。本文以一个“即时通讯系统”的设计和开发为背景,详细介绍了以Java语言和MySql数据库为平台开发软件系统的过程。系统的实现是基于TCP/IP通信协议,使用的是客户端/服务器模式,用到了Java里面的Swing、多线程、JDBC、Socket等高级编程技术。通过直接使用Java提供的ServerSocket和ObjectInputStream等类将客户端和服务器端发送的
2、各类消息封装成统一的数据流以实现消息的交换。本系统的开发过程遵循了基本的软件工程学的方法,实现了即时通讯、群组聊天、文件传送等功能。 关键词:Java;数据库;Socket编程;即时通讯系统;TCP/IP协议The Instant Messaging System based on C/S StructureAbstract: With the rapid development of the information age, especially the rise of internet technology, more and more people tend to communicate
3、 and deliver the messages through the internet.Instant messaging system is such a widely used medium. With it,the real-time dialogue and file transfer can be easily carried out. Taking the design and development of the instant messaging system as the background , this article describes in detail the
4、 process of developing software systems with Java and MySql. The realization of the system is based on the TCP / IP communication protocol, and uses a client / server mode .Many advanced java technologies such as Swing ,java multi-threading, JDBC, socket programming and so on are used. By directly u
5、sing the ServerSocket ,ObjectInputStream and other classes supported in Java API, messages sented by the client and server side are packaged into a uified data stream in order to achieve the exchange of messages. The whole development process of this system follows software engineering methods,and i
6、nstant messaging, group chatting, file transferring and other functions are realized.Keywords: Java; database; Socket programming; instant messaging system; TCP/IP protocol目 录第一章 引言11.1选题背景和意义11.2本文的主要工作2第二章 基于C/S架构的即时通讯系统概述32.1系统的可行性分析32.2系统的实现目标和基本功能42.3系统开发环境和关键技术介绍4第三章 基于C/S架构的即时通讯系统设计931系统详细设计9
7、311 系统总体流程图9312 系统总体功能模块划分10313 系统用例图11314 系统数据流图133.2 数据库设计143.3 系统关键类结构设计19第四章 基于C/S架构的即时通讯系功能实现244.1注册模块功能实现244.2登录模块功能实现264.3聊天模块功能实现284.4文件传送模块功能实现324.5后台管理模块功能实现36第五章 总结40致谢43参考文献44本科毕业设计第一章 引言1.1选题背景和意义随着经济全球化的发展,世界各地的不同人、组织、机构之间的联系越来越密切。同时伴随着互联网技术的普及和发展,网络即时通信工具已经作为一种廉价、方便的信息交流工具越来越受到人们的青睐。在
8、21世纪初的短短十几年间,即时通信系统(IM)的发展不断地取得了惊人的成就。从早期只能互相发送字符并显示在双方的屏幕上的实时通信程序到现在的图形化、面向互联网、多功能的即时通信系统,科学技术的进步和整合不断地促使着即时通信系统功能越来越丰富,用处越来越广泛。从最早的即时通讯软件ICQ诞生至今,市场上不断涌现出类似的产品。不少厂商分别推出了自己的IM,如腾讯QQ、阿里旺旺、新浪UC、移动飞信等,这些都是我们所熟悉的PC端的即时通讯软件。随着智能手机、平板电脑的普及,一些移动端的即时通信系统也如雨后春笋般涌现出来,如小米公司的米聊,腾讯公司的微信,还有年轻人之间很流行的陌陌、游戏玩家常用的YY语音
9、等。这些软件本身功能也越来越丰富,远远超出了单纯的即时聊天系统的范畴。现在的即时通信系统不仅仅是人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台1516。在当今社会,不管是个人用户还是企业用户,对沟通的需求总是在不断地发展。传统的沟通交流方式如电话、传真、邮件等已经不能完全满足人们学习、工作、生活的需要。随着计算机软件、计算机网络和移动通信技术的发展融合,集方便、廉价、快捷、实时等优点于一身的即时通讯系统可以说是继电子邮件、万维网之后,互联网上最具有杀伤力的应用。很难想象一台个人电脑没有安装像QQ这样的即时通讯软件。虽然即时聊天系统设计的初衷是聊天,但正如前面所说,其功能
10、已经超出了聊天的范畴,随着企业即时通讯工具(EIM)的出现,IM系统更是成了企业信息发布、资源共享、问题探讨和网络营销的一把利器。通过现有的技术,企业完全可以摒弃通用的免费的即时通讯系统,转而根据自己企业的需求定制开发自己专属的内部即时通讯系统,以实现更好的管理,提高员工的工作效率。我们的生活中沟通无处不在,即时聊天系统这类广泛使用的基础软件的研究开发意义深远15。1.2本文的主要工作本文围绕一个简单实用的即时聊天系统的开发,详细介绍了使用Java编程语言、Java API和MySQL数据库构建一个软件系统的过程。整个系统的分析、设计、开发、测试等过程遵循了软件工程学的方法。论文分为如下几个部
11、分:第一部分,阐述了对即时聊天系统的分析。包括系统的可行性分析、系统实现的目标和基本功能分析以及使用的一些关键技术分析。第二部分,阐述了整个系统的设计过程。包括系统总体设计、功能模块划分、数据库设计和关键类的设计。第三部分,详细介绍了整个系统的实现。针对每一个功能的具体实现展开介绍,包括使用到的开发技术、类库,第三方jar包等等。第四部分,总结与展望。针对系统的优点和不足对系统进行了总结与展望。第二章 基于C/S架构的即时通讯系统概述2.1系统的可行性分析进行可行性研究就是在行动以前,对要办的事进行调查,确认其可行与不可行,即:可行则行,不可行则止。可行性研究的目的不是解决问题,而是研究在当前
12、的具体条件下,开发新系统是否具备必要的资源和其它条件。为了达到这个目的,必须认真了解用户的要求及现实环境,探索若干种可供选择的解绝方案,并对每种解决方案的可行性进行仔细论证。一般来说应从以下几个方面进行论证12:技术可行性:使用现有的技术能是否实现这个系统经济可行性:这个系统的经济效益是否超过它的开发成本操作可行性:系统的操作方式在这个用户组织内是否行得通 在对本系统的分析中,同样是从上面三个方面入手。本系统的可行性分析包括以下几个方面的内容:(1)技术可行性:基于网络通信原理,利用Java提供的Swing、Socket等API和多线程编程、JDBC等技术可以开发出简单实用美观的即时聊天系统,
13、因此技术上是可行的。(2)经济可行性:个人电脑和网络的普及使得我们不需要太多的经济投入。在软件方面,可以采用免费的IDE如Eclipse和轻量级数据库MySQL。无需太多的经济投入即可为局域网内的即时通讯系统的实现提供支持。(3)操作可行性:一方面可以让本地机同时作为客户端和服务器实现一台机器上的即时通讯。另一方面,只要一台以上计算机连接在同一个局域网内,并且在作为客户端机器的本系统中设置需要连接的作为服务器端机器的IP地址,本系统就可以实现局域网通讯,所以操作上完全不存在问题。如果要实现internet上通讯,理论上只需要将服务器端运行在一个有固定IP的公网上就可以。综上所述,这种C/S架构
14、的即时通讯系统的开发是可行的。2.2系统的实现目标和基本功能对于个人用户而言,能够实现好友即时通讯,传递实时信息,让用户随时随地都可与好友保持畅快有效的沟通。对于企业用户而言,能够实现建立员工交流平台,统一信息发布平台,减少运营成本,促进企业办公效率。商业即时通讯系统的功能越来越多样化,一些功能也很新颖,如现在流行的语音对讲功能。本系统不比商业系统,没有考虑过多的复杂性,主要实现了基本的通讯功能,以满足学习研究之用。其基本功能有用户注册、客户端登录、一对一实时聊天、群组聊天、传送文件、服务器后台管理。2.3系统开发环境和关键技术介绍(1)Java语言简介Java是一种可以撰写跨平台应用软件的面
15、向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景18。Java之所以被开发,是要达到以下五个目的2: 应当使用面向对象程序设计方法学 应当允许同一程序在不同的计算机平台执行 应当包括内建的对计算机网络的支持 应当被设计成安全地执行
16、远端代码 应当易于使用,并借鉴以前那些面向对象语言(如C+)的长处。Java语言有着简单、面向对象、分布式、健壮、安全、可移植等特性,因此受到了众多程序开发人员的青睐。(2)Eclipse简介Eclipse是著名的跨平台开源集成开发环境(IDE)。它是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。人们最初主要用它来做Java语言开发,目前亦有人通过插件使其作为C+、Python、PHP等其他语言的开发工具。Eclipse本身就是用Java语言开发的,它的设计思想是:一切皆是插件。Eclipse核心很小,其它所有功能都以插件
17、的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。这些特性使得Eclipse拥有较佳的灵活性,许多软件开发商以Eclipse为框架开发自己的IDE13。(3)MySql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL
18、自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。本系统采用的后台数据库即为社区版7。(4)网络通信协议简介网络通信协议为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。网络通信的层次结构和网络通信的协议,是开发网络程序的基础。目前在网络编程方面最
19、常用的是TCP/IP和UDP通信协议。通过这些协议,网络通信的各主机可以用一种统一而非杂乱的规范,高效便捷地相互发送和接收消息。本系统在通讯功能实现中采用了TCP传输协议,直接使用的Java API提供的类Socket和Serversocket等来实现69。TCP传输协议说明TCP协议是面向连接的协议,比如说在客户端A和B进行连接之前必须首先建立数据通路,就向打电话一样,在通话之前必须先拨号,等待对方的接听以后才能进行通话。TCP协议中数据传输采取的是同步方式,当数据发送到对方时,必须等待接收方的应答信号后才能继续下一次的发送工作,即通常所讲的三次握手。由于TCP协议采用的是这种连接方式,因此
20、由它建立的连接是可靠的。在网络不是十分理想的情况下,速度牺牲很大,但是却能够保证所传输的数据的正确性。 UDP传输协议说明UDP协议采用的是面向无连接的通信方式,它在通信前不需要提前建立通信链路,它是异步的,数据的发送比较迅速,不需要等待应答信号。优点是发送速度较快,但是在数据的一致性方面不好,在网络差的情况下,容易丢失数据包。另外,使用UDP传输数据时对数据是有大小限制的,每个被传输的包必须限定在64KB之内6。Java Socket(套接字)说明在Java语言里,使用Socket(套接字)模型来封装网络传输的具体动作。Java提供了Socket的相关包,Java中Socket的设计采用了面
21、向对象的思路,模拟了TCP协议里客户端和服务器端的通信流程,并封装了创建连接、发送接收数据流、断开连接等方法。所以,使用Socket包,程序员不仅可以创建客户端和服务器之间的通信信道,还能实现发送和接收数据流等的网络通信功能。针对一个特定的连接和通信过程,服务器和客户端程序里都有一个Socket对象,我们可以想象一下其场景,在通信过程中,有一条虚拟的“光缆”构架在服务器和客户端之间,光缆的两头都插在了Socket这“插座”里。事实上,Java采用Socket包是对TCP协议的进一步抽象,更向程序员屏蔽了TCP通信的细节,具体表现在以下两方面 9。 在使用Socket类里的方法建立信道的时候,S
22、ocket类屏蔽了通过三次握手建立信道的全部流程,直接向程序员返回信道类的句柄(Socket类的实例)或是出错信息。 Socket类向程序员屏蔽了服务器和客户端之间的物理硬件指标和底层的连接方式,所以我们在使用Socket类开发网络程序时,可以简单地调用其提供的方法来传输数据,而不必关心数据流的传输和接收方式6。Java中的Socket通信流程如图2-1所示。构造Server端数据输入流对象构造Server端数据输出流对象在数据流中发送、接收客户消息建立客户端Socket连接Socket client=new Socket(“ServerHost”,8888);构造Client端数据输入流对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 即时 聊天 系统 设计 实现
链接地址:https://www.31ppt.com/p-4882289.html