基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx

上传人:b****4 文档编号:7897432 上传时间:2023-05-09 格式:DOCX 页数:75 大小:720.26KB
下载 相关 举报
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第1页
第1页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第2页
第2页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第3页
第3页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第4页
第4页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第5页
第5页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第6页
第6页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第7页
第7页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第8页
第8页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第9页
第9页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第10页
第10页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第11页
第11页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第12页
第12页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第13页
第13页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第14页
第14页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第15页
第15页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第16页
第16页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第17页
第17页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第18页
第18页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第19页
第19页 / 共75页
基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx_第20页
第20页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx

《基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx(75页珍藏版)》请在冰点文库上搜索。

基于CS结构的即时通信系统的设计与实现毕业设计文档格式.docx

指导教师评分:

指导教师(签字):

年月日

评阅人评语:

评阅人评分:

评阅人(签字):

毕业设计(论文)任务书

学院

信息科学与工程学院

专业

通信工程

学生姓名

学号

设计(论文)题目

基于C/S结构的即时通信系统的设计与实现

内容及要求:

1.基于C/S结构即时通信系统发展现状及技术背景;

2.基于C/S结构即时通信系统的设计;

3.编程实现基于C/S结构即时通信系统;

4.基于C/S结构即时通信系统测试分析;

5.依据研究的内容撰写毕业设计论文。

进度安排:

第1~3周:

搜集课题相关资料,熟悉开发工具,撰写开题报告;

第4~6周:

基于C/S结构即时通信系统架构及功能设计;

第7~9周:

基于C/S结构即时通信系统详细设计;

第10~12周:

编程实现基于C/S结构即时通信系统;

第13周:

程序调试;

第14~16周:

撰写、修改、装订论文,准备答辩。

指导教师(签字):

年月日

学院院长(签字):

年月日

学生毕业设计档案

指导教师姓名

职称

副教授

所在单位

毕业设计题目

毕业设计(论文)完成情况

毕业设计各阶段名称

起止日期

完成情况(存在问题及整改意见)

阶段成绩*

1.搜集课题相关资料,熟悉开发工具,撰写开题报告;

2.基于C/S结构即时通信系统架构及功能设计;

3.基于C/S结构即时通信系统详细设计;

4.编程实现基于C/S结构即时通信系统;

5.程序调试;

2015.3.2——2015.3.22

2015.3.23——2015.4.12

2015.4.13——2015.4.26

2015.4.27——2015.5.24

2015.5.25——2015.6.7

2015.6.8——2015.6.21

指导

教师

意见

(根据学生出勤及毕业设计(论文)完成情况,指导教师是否同意该学生参加答辩)

指导教师(签名):

年月日

*注:

阶段成绩分A、B、C三级:

A为全面完成任务、B为完成任务、C为完成

摘要

随着互联网的发展,越来越多的人使用即时通讯工具。

即时通讯(IM)是指一种能够让使用者即时发送和接收互联网消息等的实时通讯服务。

即时通讯的最大特点在于它的即时性,不用等候,只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方。

只要有网络,无论对方在天涯海角,或是双方隔得多远都没有距离。

因此即时通信系统在现代社会中有着非常重要的地位。

本论文详细的论述了即时通讯系统的客户端和服务器端的主要组成模块,论述各模块实现方式和详细的设计,每个模块的主要功能进行了阐述,并画出模块流程图。

系统按照软件工程思想釆用面向对象和模块化设计方法设计,其中采用了网络通信技术、数据库技术、多线程技术等计算机技术,实现了文本通信、用户分组、用户管理等功能,具有通信即时性等特点。

系统基于C/S体系结构,使用Java语言进行开发,实现多用户的即时通信。

设计并实现了用户注册,登录,用户列表,多用户即时聊天和聊天记录管理等功能。

基于Swing开发图形用户界面(GUI);

通过套接字编程完成通信功能。

最终实现了一款面向企业用户的在局域网使用的即时通讯系统。

本系统基本实现了上述的研究,能够满足基本的通信需求。

同时由于本系统采用模块化程序设计,具有良好可扩充性。

关键词:

Swing编程;

C/S;

多线程编程;

即时通信系统

Abstract

WiththedevelopmentoftheInternet,moreandmorepeopleareusinginstantmessagingtools.IM(IM)isawaytoallowuserstosendandreceiveinstantmessagesandotherInternetreal-timecommunicationservices.Themostimportantfeatureofinstantmessagingisitsrealtime.Aslongastwopeopleareonlineatthesametime,youtwodonothavetowaitandcansendtext,files,audio,videotoeachotherlikemultimediaphones.Aslongasthereisanetwork,thereisnodistance,regardlessofhowfarbetweeneachother.Therefore,thereal-timecommunicationsystemshaveplayedaveryimportantroleinmodernsociety.

Thisessayanalyzedthemainmodulesoftheinstantmessagingsystem'

sclientandserverindetail,discussedtheimplementationsofeachmoduleanddetaileddesignofhemainfunctionsofeachmoduleanddrewtheflowdiagram.Thissystemwasdesignedbyobject-orientedandmodularmethod,whichusednetworkcommunicationechnology,databasetechnologyandmulti-threadingtechnologyandsoon.Thissystemimplementedfunctionsofthetextcommunication,usergroups,anduser-management,andhadreal-timefeature.ThissoftwarebasedonC/SusingJavaprogramlanguage,realizedmulti-users5instantmessaging.Ihavedesignedandcarriedoutsign-up,sign-in,userlist,multi-userinstantmessaging,recordsmanagementandsoforth.Developedgraphicaluserinterface(GUI)usingSwing.Implementedcommunicationsusingsocketprogramming.Finally,AninstantmessagingsystemwasimplementedwhichisorientedthebusinessenterpriseusingonLAN.TheSystemreflectstheaboveresearchresults,andcanmeetthecommunicationneeds.Andbecauseofmodularprogramming,thesystemhaswellextensibility.

Keywords:

SwingProgramming;

instantMessaging;

Multi-threadProgramming;

Client/Servermodel

1绪论

1.1即时通倍系统概述和选题背景

即时通信(InstantMessaging,缩写为IM),是以万维网为基础,实现通信双方语言、文件、语音等实时信息传送的通信过程[1]。

与Email等传统的通信方式相比,即时通信具有实时、方便、快捷、廉价、交互性好等优点。

当今社会是一个信息化的社会,个人化的交流要求越来越高。

同时,随着多媒体计算机技术和通信技术的迅猛发展,人们已经不能满足于简单的话音和文字通信,希望集语音、文字和图像于一体的多媒体通信[2-4]。

即时通信技术自从1996年诞生以来,经历了10余年的发展,已经从最初的简单的文字聊天通信工具,发展成为一个集通信和娱乐统一于一体的广泛平台。

在这个平台上,除了可以进行最基本的实时通信(包括文字通信,还有视频通信和语音通信)之外,还可以进行游戏的娱乐项目,甚至可以进入一个虚拟的世界、一个虚拟的现实。

现在著名的即时通信软件有QQ,GoogleTalk,YahooMessager,微信,飞信,Line,Skype等,这些即时通信系统在提供即时通信基本功能的基础上,各自有自己的特点。

如飞信可以免费发送短信到好友的手机;

Googletalk的聊天记录是以邮件的形式保存在Googlemail的邮箱里面[5]。

而且除了实现PC与PC、手机与手机的通讯之外,还可以实现手机与PC之间的通信。

但是这些优秀的即时通讯软件的使用必须有一个前提条件:

必须保证因特网的畅通。

如果因特网不畅通,那么这些软件都不能正常的使用,而且很多的即时通讯软件只能在Windows平台下运行,不能在Linux、MacOS上跨平台运行,除了个别的几个工具之外,也不能再移动平台上运行。

随着时代的发展,互联网时代的到来,人们的沟通交流方式也变得越来越丰富,如Email、BBS、即时通讯软件、微博、移动终端等。

但是就在个人通信方式方兴未艾的时候,企事业内部交流通信却显得比较的尴尬,很多的企事业单位内部之间的工作沟通使用的市场上现有的个人即时通讯工具,部门同事之间相互加为好友,部门与部门之间建立一个又一个的群,这种方式貌似很方便同事之间的工作沟通。

本人的QQ就加入了十几个群,个人的各种好友有近百人,我的同学中有的加入几十个群,各种好友有数百人之多。

每天一打开通信软件,就会弹出各个群的信息,很多好友的信息,每天的交流沟通占去了很多很多的时间,工作效率低下。

发出一款能在企事业单位内部使用的、进行工作沟通交流的即时通讯软件,使得我们能在上班的时候免受工作之外的各种信息的干扰,提高我们的沟通质量,提升人们的沟通体验,就显得非常必要。

而且人们也越来越关注一个问题,那就是安全保密。

如何能在因特网不畅通的时候进行实时通信,如何保证个人信息的安全性,如何保证企业单位内部信息安全性,如何使得软件能够跨平台(不仅是PC平台之间,也包括PC和移动终端之间)使用,正是本论文的研究所在。

1.2选题的目的和研究意义

现代社会的信息越来越发达,生活节奏也越来越快,于是新型的省时,省力而又高速便捷美观的即时通讯工具迅速发展起来。

例如手机即时通讯和PC即时通讯,手机即时通讯的代表就是短信;

而网站、视频即时通讯有:

米聊、YY语音、QQ、MSN、XXhi、新浪UC、阿里旺旺、网易泡泡、网易CC、盛大ET、移动飞信、企业飞信等应用形式。

尽管有这么多的通讯形式,但并不是都很完美,每种形式各有优劣。

所以期待能用Java语言编程改善和解决一些问题,进一步提升即时通讯的功用。

在信息化时代,作为人们使用最多的,与日常生活最为密切的即时通讯工具,就成了人与人之间进行信息交流,感情传递的主要方式。

然而,以传统的QQ为代表的即时通讯工具过多的侧重于娱乐性,不能够适用于高效严谨的办公环境,它不仅影响员工的工作效率,而且使得企业的内部的资源信息存在着较大的安全隐患。

因此,开发出一款能够适应办公环境,企业急需,方便高效的,又安全可靠的即时通讯工具就显得比较的紧迫,比较具有现实意义。

通过研究开发出一款适合于企事业单位使用的即时通讯软件。

本系统具有如下的特点:

(1)由于减少了工作之外的因素的干扰,工作效率大大的提高,沟通体验得到了提升。

(2)能够很快捷方便的获知对方是否在线。

(3)由于交流通信使用的内部的即时通讯软件,所以能够很好的保护信息的安全。

(4)系统应用之后,使得沟通的渠道通畅,交流实现扁平化,避免了过去传达汇报的传统交流沟通方式,使得沟通交流更加的有效。

(5)由于采用C/S架构,所有的信息都是通过服务器转发,很方便的查询历史记录。

本系统釆用模块化程序设计,系统具有良好可扩充性,可以在后续的开发中添加移动通信模块、电子邮件模块和视频通信模块,为系统的继续完善奠定了良好的基础。

1.3本论文的研究方法

本文的设计目标是一个实用的面向企业的局域网即时通讯软件。

首先对系统的可行性进行分析,确定了系统开发可行。

然后经过需求分析确定了系统最终要实现的功能,确定了本系统所使用的后台数据库系统为MySQL,并对系统中的数据库进行了设计。

系统釆用目前最为流行的开发工具Java语言进行开发。

其中,网络通信部分采用流行的TCP/IP协议,程序采用典型的C/S(客户端/服务器)模式,这是传统的软件系统体系结构,能够将任务合理的分配的Client端(即客户端)和Server端(即服务器端),可以大大的降低系统的通讯开销,可以充分的利用C/S两端的硬件环境的优势。

程序采用的是使用Socket套接字进行网络通讯模块设计,界面部分采用Swing轻量级控件,能够是系统的控件在各个平台上具有完全相同的界面,达到了很好的互通性。

系统釆用模块化设计,釆用自顶向下的开发模式。

开发过程中先根据功能将系统划分成不同的模块,然后将各个模块继续细化,划分成更小的子模块。

模块化的好处是便于开发,便于调试,便于系统的后期维护,并为后续的开发预留接口,使得系统具有良好的可扩充性。

本文最终设计出一个简易而实用的网络即时通讯软件,模式又分为服务器和客户端两部分:

客户端通过输入服务器端的IP地址与服务器建立通信。

考虑到要可以在局域网中应用,本系统使用的是第二种方法,经过设置,在局域网或internet上都可以使用。

1.4本论文的内容

第一章绪论。

系统的介绍了课题的选题背景,课题研究的意义,所釆用的研究方法以及本论文的结构。

第二章主要内容介绍。

详细的介绍了本系统所涉及到的即时通信的原理。

包括即时通信系统的定义TCP/IP协议。

介绍了本系统所涉及的JAVA编程技术。

包括套接字编程,多线程编程技术,Swing轻量级图形用户界面开发,系统开发的C/S架构等。

介绍了数据库操作的MySQL语言。

第三章系统分析。

首先从技术可行性、经济可行性和操作可行性方面讨论了系统的可行性。

然后通过需求分析确定了系统所要实现的基本功能。

第四章系统设计。

确定了系统的总体框架,服务器端和客户端的详细功能和界面,并且确定了系统的数据库。

第五章系统实现。

重点介绍了系统的服务器端和客户端的实现。

最后是结语和致谢。

对整个发过程做出了全面的回顾,并系统的进一步改进和完善提出自己的意见。

2主要技术介绍

2.1开发环境介绍

2.1.1Java语言的产生与发展简介

Java是JamesGosling领导的Green小组在SunMicrosystems公司开发的,1995年更名为Java,并重新设计,用于开发Internet应用程序。

近年来,Java变得非常流行,显示出独特的魅力:

跨平台、动态的Web、Internet计算。

Java被广泛接受并推动了Web的迅速发展,同时Java技术也不断更新。

Java是一个由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface>

简称API)构成的完整平台,有一个庞大的类库,其中包含很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。

Java的内容体系主要有:

Java应用程序、Applet小应用程序、JSP/Servlet、JavaBean、EJB、JavaME、JavaEE等[6]。

迄今为止,Java语言已作为一门综合性技术在众多领域得到发展和应用。

2.1.2Java语言的主要特点

Java是面向对象的、简单的、分布式的、解释型的、健壮的、安全的、结构中立的、可移植的、高性能的、多线程的和动态的[7]。

(1)Java语言是面向对象的程序设计语言。

Java是一个纯粹面向对象的语言,强调的面向对象的特性,具备继承、封装及多态性,对软件工程技术能够提供很强的支持[8]。

为了简单起见,Java语言只支持类之间的单继承,但支持接口之间的多继承。

另外Java全面支持动态绑定。

(2)Java语言是简单的。

Java在设计的时候尽可能地接近C/C++,但是剔除了C++中很少使用的、难以理解的、易混淆的特性,如操作符重载、多继承、自动的强制类型转换。

特别地,Java语言不使用指针,并提供了自动垃圾回收机制[9]。

总之,Java语法好比C++语法的一个“纯净”版本。

Java简单性的另一方面是小。

(3)Java语言是分布式的。

从诞生起,Java就与网络联系在一起,它强调网络特性,内置TCP/IP、HTTP、FTP协议类库,Java应用程序能过通过URL打开和访问网络上的对象,其便利程度如同访问本地文件系统一样。

另外,Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

(4)Java语言是解释型的。

Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。

在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

(5)Java语言是健壮的。

Java通过强类型机制、异常处理、垃圾的自动收集等机制来保证Java程序的健壮性。

Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。

Java的安全检查机制使得Java更具健壮性。

(6)Java语言是安全的。

Java程序在语言定义阶段、字节码检查阶段及程序执行阶段进行的三级代码安全检查机制,对参数类型匹配、对象访问权限、内存回收、Java小应用程序的正确使用等都进行了严格的检查和控制,可以有效地防止非法代码的入侵,阻止对内存的越权访问,能够避免病毒的侵害。

(7)Java语言是体系结构中立的。

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),只要有Java运行时系统,这种字节码不仅可以很容易地在任何机器上被解释执行,而且还可以迅速地翻译成本地机器的代码。

(8)Java语言是可移植的。

与C/C++不同,Java规范中没有“依赖具体实现”的地方。

基本数据类型的大小以及有关算法都做了明确的说明。

Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。

(9)Java是高性能的。

Java采用JIT编译器(即时编译器),而即时编译器的基本工作方式是一次把字节码编译为本地代码,并将结果缓存起来,在需要的时候重新调用,由于这种方式只需要进行一次解释,从而极大地提高了常用代码的运行速度。

(10)Java语言是多线程的。

只要操作系统支持,Java中的线程就可以利用多个处理器。

在不同的机器上,只是调用多线程的代码完全相同,Java把多线程的实现交给了底层的操作系统或线程库来完成。

(11)Java语言是动态的。

Java执行代码是在运行时动态载入的。

在网络环境下,Java语言编写的代码用于客户端架构可减少维护工作。

另外,类库中增加的新方法和其他实例不会影响到原有程序的运行。

2.1.3Javaweb和struts2技术

采用B/S的结构实现服务器端,对用户和在线用户进行增删改查,和踢用户下线,以及开启服务器和关闭服务器。

客户端采用C/S结构,管理端采用B/S的结构,用Tomcat作为服务器,MySQL作为数据库,还使用到了WindowBuilder开源框架进行界面开发。

2.1.4MyEcIipse

MyEclipse企业级工作平台(MyEcIipseEnterpriseWorkbench,简称MyEcIipse)是对EclipseIDE的扩展,集成了从J2EE到各种轻量级的框架(Struts,Spring,Hibemate等等),有利于程序的一体化开发。

简单而言,MyEcIipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,完整支持HTML,Stmts,JSF,CSS,Javascript,MySQL,Hibernate。

2.2Swing编程

javax.swing包在图形界面设计上比AWT更丰富,更美观。

Swing拥有4倍于AWT的用户界面组件,他是在AWT包的基础上的扩展。

本系统中大量使用了Swing组件编程。

本系统用到的Swing组件有面板(JPanel)、滚动窗口(JscrollPane)、选项板(JTabbedPane)、按钮(JButton)、组合框(JComboBox)、标签(JLabel)、表格(JTable)、文本域(JTextField)、文本区域(JTextArea)。

其中文本域(JTextField)是用来输入或显示字符串的Swing组件[12],文本区域(JTextArea)可以让用户输入多行文本的Swing组件[12]。

2.3多线程编程

多任务处理有两种截然不同的类型:

基于进程的和基于线程的。

进程是程序的一次动态执行,对应了从代码加载、执行至执行完毕的一个完整过程。

一个进程中既包括所要执行的指令,也包括执行指令所需的任何系统资源,如CPU、内存空间、I/O端口等,不同进程所占用的系统资源相对独立。

因此,基于进程的多任务处理的特点是允许你的计算机同时运行两个或更多的程序。

线程是进程执行过程中产生的多条执行线索,是比进程更小的执行单位,必须栖身于某一进程之中,有进程触发执行。

基于进程的多任务处理的特点是一个程序可以同时执行两个或多个任务的功能。

多线程程序比多进程程序需要更少的系统开销。

在创建或撤销进程时,系统都要为之创建和回收进程控制块,分配或回收资源,如内存空间和I/O设备,系统所付出的开销明显大于创建或撤销时的开销。

在进程切换时,涉及到当前进程CPU环境的保存及新被调度运行进程的CPU环境的设置,而线程的切换则仅需保存和设置少量寄存器内容,不涉及存储管理

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2