CS架构的即时聊天系统的设计与实现Word下载.docx
《CS架构的即时聊天系统的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《CS架构的即时聊天系统的设计与实现Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
关键词:
Java;
数据库;
Socket编程;
即时通讯系统;
TCP/IP协议
TheInstantMessagingSystembasedonC/SStructure
Abstract:
Withtherapiddevelopmentoftheinformationage,especiallytheriseofinternettechnology,moreandmorepeopletendtocommunicateanddeliverthemessagesthroughtheinternet.Instantmessagingsystemissuchawidelyusedmedium.Withit,thereal-timedialogueandfiletransfercanbeeasilycarriedout.Takingthedesignanddevelopmentoftheinstantmessagingsystemasthebackground,thisarticledescribesindetailtheprocessofdevelopingsoftwaresystemswithJavaandMySql.TherealizationofthesystemisbasedontheTCP/IPcommunicationprotocol,andusesaclient/servermode.ManyadvancedjavatechnologiessuchasSwing,javamulti-threading,JDBC,socketprogrammingandsoonareused.BydirectlyusingtheServerSocket,ObjectInputStreamandotherclassessupportedinJavaAPI,messagessentedbytheclientandserversidearepackagedintoauifieddatastreaminordertoachievetheexchangeofmessages.Thewholedevelopmentprocessofthissystemfollowssoftwareengineeringmethods,andinstantmessaging,groupchatting,filetransferringandotherfunctionsarerealized.
Keywords:
Java;
database;
Socketprogramming;
instantmessagingsystem;
TCP/IPprotocol
第一章引言
1.1选题背景和意义
随着经济全球化的发展,世界各地的不同人、组织、机构之间的联系越来越密切。
同时伴随着互联网技术的普及和发展,网络即时通信工具已经作为一种廉价、方便的信息交流工具越来越受到人们的青睐。
在21世纪初的短短十几年间,即时通信系统(IM)的发展不断地取得了惊人的成就。
从早期只能互相发送字符并显示在双方的屏幕上的实时通信程序到现在的图形化、面向互联网、多功能的即时通信系统,科学技术的进步和整合不断地促使着即时通信系统功能越来越丰富,用处越来越广泛。
从最早的即时通讯软件ICQ诞生至今,市场上不断涌现出类似的产品。
不少厂商分别推出了自己的IM,如腾讯QQ、阿里旺旺、新浪UC、移动飞信等,这些都是我们所熟悉的PC端的即时通讯软件。
随着智能手机、平板电脑的普及,一些移动端的即时通信系统也如雨后春笋般涌现出来,如小米公司的米聊,腾讯公司的微信,还有年轻人之间很流行的陌陌、游戏玩家常用的YY语音等。
这些软件本身功能也越来越丰富,远远超出了单纯的即时聊天系统的范畴。
现在的即时通信系统不仅仅是人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台[15][16]。
在当今社会,不管是个人用户还是企业用户,对沟通的需求总是在不断地发展。
传统的沟通交流方式如电话、传真、邮件等已经不能完全满足人们学习、工作、生活的需要。
随着计算机软件、计算机网络和移动通信技术的发展融合,集方便、廉价、快捷、实时等优点于一身的即时通讯系统可以说是继电子邮件、万维网之后,互联网上最具有杀伤力的应用。
很难想象一台个人电脑没有安装像QQ这样的即时通讯软件。
虽然即时聊天系统设计的初衷是聊天,但正如前面所说,其功能已经超出了聊天的范畴,随着企业即时通讯工具(EIM)的出现,IM系统更是成了企业信息发布、资源共享、问题探讨和网络营销的一把利器。
通过现有的技术,企业完全可以摒弃通用的免费的即时通讯系统,转而根据自己企业的需求定制开发自己专属的内部即时通讯系统,以实现更好的管理,提高员工的工作效率。
我们的生活中沟通无处不在,即时聊天系统这类广泛使用的基础软件的研究开发意义深远[15]。
1.2本文的主要工作
本文围绕一个简单实用的即时聊天系统的开发,详细介绍了使用Java编程语言、JavaAPI和MySQL数据库构建一个软件系统的过程。
整个系统的分析、设计、开发、测试等过程遵循了软件工程学的方法。
论文分为如下几个部分:
第一部分,阐述了对即时聊天系统的分析。
包括系统的可行性分析、系统实现的目标和基本功能分析以及使用的一些关键技术分析。
第二部分,阐述了整个系统的设计过程。
包括系统总体设计、功能模块划分、数据库设计和关键类的设计。
第三部分,详细介绍了整个系统的实现。
针对每一个功能的具体实现展开介绍,包括使用到的开发技术、类库,第三方jar包等等。
第四部分,总结与展望。
针对系统的优点和不足对系统进行了总结与展望。
第二章基于C/S架构的即时通讯系统概述
2.1系统的可行性分析
进行可行性研究就是在行动以前,对要办的事进行调查,确认其可行与不可行,即:
可行则行,不可行则止。
可行性研究的目的不是解决问题,而是研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。
为了达到这个目的,必须认真了解用户的要求及现实环境,探索若干种可供选择的解绝方案,并对每种解决方案的可行性进行仔细论证。
一般来说应从以下几个方面进行论证[12]:
·
技术可行性:
使用现有的技术能是否实现这个系统
经济可行性:
这个系统的经济效益是否超过它的开发成本
操作可行性:
系统的操作方式在这个用户组织内是否行得通
在对本系统的分析中,同样是从上面三个方面入手。
本系统的可行性分析包括以下几个方面的内容:
(1)技术可行性:
基于网络通信原理,利用Java提供的Swing、Socket等API和多线程编程、JDBC等技术可以开发出简单实用美观的即时聊天系统,因此技术上是可行的。
(2)经济可行性:
个人电脑和网络的普及使得我们不需要太多的经济投入。
在软件方面,可以采用免费的IDE如Eclipse和轻量级数据库MySQL。
无需太多的经济投入即可为局域网内的即时通讯系统的实现提供支持。
(3)操作可行性:
一方面可以让本地机同时作为客户端和服务器实现一台机器上的即时通讯。
另一方面,只要一台以上计算机连接在同一个局域网内,并且在作为客户端机器的本系统中设置需要连接的作为服务器端机器的IP地址,本系统就可以实现局域网通讯,所以操作上完全不存在问题。
如果要实现internet上通讯,理论上只需要将服务器端运行在一个有固定IP的公网上就可以。
综上所述,这种C/S架构的即时通讯系统的开发是可行的。
2.2系统的实现目标和基本功能
对于个人用户而言,能够实现好友即时通讯,传递实时信息,让用户随时随地都可与好友保持畅快有效的沟通。
对于企业用户而言,能够实现建立员工交流平台,统一信息发布平台,减少运营成本,促进企业办公效率。
商业即时通讯系统的功能越来越多样化,一些功能也很新颖,如现在流行的语音对讲功能。
本系统不比商业系统,没有考虑过多的复杂性,主要实现了基本的通讯功能,以满足学习研究之用。
其基本功能有用户注册、客户端登录、一对一实时聊天、群组聊天、传送文件、服务器后台管理。
2.3系统开发环境和关键技术介绍
(1)Java语言简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景[1][8]。
Java之所以被开发,是要达到以下五个目的[2]:
∙应当使用面向对象程序设计方法学
∙应当允许同一程序在不同的计算机平台执行
∙应当包括内建的对计算机网络的支持
∙应当被设计成安全地执行远端代码
∙应当易于使用,并借鉴以前那些面向对象语言(如C++)的长处。
Java语言有着简单、面向对象、分布式、健壮、安全、可移植等特性,因此受到了众多程序开发人员的青睐。
(2)Eclipse简介
Eclipse是著名的跨平台开源集成开发环境(IDE)。
它是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
人们最初主要用它来做Java语言开发,目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。
Eclipse本身就是用Java语言开发的,它的设计思想是:
一切皆是插件。
Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。
Eclipse基本内核包括:
图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE)等。
这些特性使得Eclipse拥有较佳的灵活性,许多软件开发商以Eclipse为框架开发自己的IDE[13]。
(3)MySql简介
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MyS