本科毕业论文基于JAVA的聊天系统的设计与实现.docx

上传人:b****7 文档编号:11224560 上传时间:2023-02-25 格式:DOCX 页数:43 大小:448.42KB
下载 相关 举报
本科毕业论文基于JAVA的聊天系统的设计与实现.docx_第1页
第1页 / 共43页
本科毕业论文基于JAVA的聊天系统的设计与实现.docx_第2页
第2页 / 共43页
本科毕业论文基于JAVA的聊天系统的设计与实现.docx_第3页
第3页 / 共43页
本科毕业论文基于JAVA的聊天系统的设计与实现.docx_第4页
第4页 / 共43页
本科毕业论文基于JAVA的聊天系统的设计与实现.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

本科毕业论文基于JAVA的聊天系统的设计与实现.docx

《本科毕业论文基于JAVA的聊天系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《本科毕业论文基于JAVA的聊天系统的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。

本科毕业论文基于JAVA的聊天系统的设计与实现.docx

本科毕业论文基于JAVA的聊天系统的设计与实现

摘要

随着互联网的快速开展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

目前,出现了很多非常不错的聊天工具,其中应用比拟广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。

该系统开发主要包括一个网络聊天效劳器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立效劳器,效劳器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与效劳器建立连接,来进展客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的根本理论知识,如TCP/IP协议、客户端/效劳器端模式〔Client/Server模式〕、网络编程的设计方法等。

在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些根本的软件工程的方法。

经过分析这些情况,该局域网聊天工具采用Eclipse为根本开发环境和java语言进展编写,首先可在短时间建立系统应用原型,然后,对初始原型系统进展不断修正和改良,直到形成可行系统

关键词:

局域网聊天socketjava

 

Abstract

AlongwiththefastdevelopmentofInternet,thenetworkchatingtoolhasalreadybeeonekindofimportantmunicationtoolsandreceivedmoreandmorewebcamsfavor.Atpresent,manyextremelygoodchatingtoolshaveappeared.forexample,Netmeeting,QQ,MSN-Messagerandsoon.Thissystemdevelopmentmainlyincludestwoaspectsoftheserverprocedureofthenetworkchatandthecustomerprocedureofthenetworkchat.TheformerestablishestheserverthroughtheSocket,theservercanreadanddelivertheinformationwhichclientsidesends,andcanrenovatetheuserstabulation.Thelattermakeaconnectionwiththeserver,carriesonmunicationbetweentheclientsideandtheclientside.WiththeLANcorrespondencemechanismprinciple,throughinherittingtheThreadkindtoestablishthemultithreadingdirectly.Inthedevelopment,itusestheelementarytheoryknowledgewhichtheputernetworkprogrammes.forexample,TCP/IPagreement,Client/Serverpattern,networkprogrammingdesignmethodandsoon.Inthenetworkprogramming,itrealizesreadingandtransmissionoftheinformation,thatis,informatonflowsrealizetheinformationexchange,introduceinformationflowanalysisforrealizingasystem,inwhichcontainessomebasicsoftwareengineeringmethods.Afteranalyzesthesesituations,thisLANchatingtooltakesEclipseasthebasicdevelopmentenvironmentandpilesinjavalanguage.first,itwillestablishthesystemapplicationprototypeinashorttime.then,fortheinitialprototypesystem,itneedsconstantlyrevisedandimproved,untilaviablesystem.

Keywords:

LANChatSocketJava

 

1.绪论………………………………………………………………………………01

1.1JAVA的网络功能与编程…………………………………………………01

1.1.1JAVA概述…………………………………………………………………02

1.1.2JAVA的特点……………………………………………………………04

1.1.3JAVA语言在网络上的应用……………………………………………07

1.2JavaBeans技术……………………………………………………………08

1.3IP/TCP协议常识…………………………………………………………08

1.4Socket的简介……………………………………………………………09

2.规划设计…………………………………………………………………………11

2.1课题来源……………………………………………………………………11

2.2需求分析…………………………………………………………………11

3.系统分析与设计方案……………………………………………………………12

3.1聊天系统的总体设计要点………………………………………………12

3.2聊天系统的设计步骤及功能模块划分……………………………………12

3.3功能模块构造图…………………………………………………………13

4.系统设计环境与测试…………………………………………………………26

4.1开发环境和工具…………………………………………………………26

4.2硬件环境……………………………………………………………………26

4.3聊天系统的测试…………………………………………………………26

5.毕业设计总结……………………………………………………………………28

5.1毕业设计总结和展望……………………………………………………28

5.2经历和感想…………………………………………………………………28

致……………………………………………………………………………30

参考文献…………………………………………………………………………31

1绪论

随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。

本聊天系统以聊天交流为主,为广阔用户提供一个借助网络进展人际交往的平台,也是网络与现实最贴近的实用型。

本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,易于维护和更新,其运行所需环境及其工作流程和各个功能控件的工作原理将在本文依次介绍,并且文中提供了局部程序源代码。

1.1JAVA的网络功能与编程

1.1.1JAVA概述

美国硅谷有一句行话,每10年~15年有一次轮回。

最近的一次轮回就是从Java开场。

Java是一个由Sun公司开发而成的新一代编程语言。

使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。

不管你使用的是哪一种浏览器,哪一种计算机,哪一种操作系统,只要浏览器上面注明了“支持Java〞,你就可以看到生动的主页。

Java正在逐步成为Internet应用的主要开发语言。

它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速开展的信息世界增添了新的活力。

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。

Sun部人员把这个工程称为Green,那时WorldWideWeb还在图纸上呢。

该小组的领导人是JamesGosling,是一位非常出色的程序员。

他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。

他是SunNeWs窗口系统的总设计师。

也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。

在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:

消费类电子产品要求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准根底之上,具有一系列可选的方案,从8086到80586都可以选取。

从C开场

为了使整个系统与平台无关,Gosling首先从改写C编译器着手。

但是Gosling在改写过程中感到仅C是无法满足需要的,于是在1991年6月份开场准备开发一个新的语言,那么给它起一个什么名字呢?

Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身〔后来发现Oak已是Sun公司另一个语言的注册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字〕。

Gosling在开场写Java时,并不局限于扩大语言机制本身,更注重于语言所运行的软硬件环境。

他要建立一个系统,这个系统运行于一个巨大的、分布的、异构的网格环境中,完成各电子设备之间的通信与协同工作。

Gosling在设计中采用了虚机器码〔VirtualMachineCode〕方式,即Java语言编译后产生的是虚拟机,虚拟机运行在一个解释器上,每一个操作系统均有一个解释器。

这样一来,Java就成了平台无关语言。

这和Gosling设计的SunNeWs窗口系统有着一样的技术味道。

在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

PatrickNaughton也是Sun公司的技术骨干,曾经是OpenWindows工程的负责人。

当Naughton参加该小组后,整个工作进展神速。

经过17个月的奋战,整个系统胜利完成。

它是由一个操作系统、一种语言〔Java〕、一个用户界面、一个新的硬件平台、三块专用芯片构成的。

通常情况下,这样的工程在Sun公司要75个人干三年。

工程完成后,在Sun公司部做了一次展示和鉴定,观众的反响是:

在各方面都采用了崭新的、非常大胆的技术。

许多参观者对Java留下了非常深刻的印象,特别得到Sun的两位领导人ScottMealy和BillJoy的关注,但Java的前途未卜。

Java语言的转折点

  到了1994年,已如火如荼地开展起来。

Gosling意识到需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台,它应是一种实时性较高、可靠平安、有交互功能的浏览器。

于是Gosling决定用Java开发一个新的Web浏览器。

  这项工作由Naughton和JonathanPayne负责,到1994年秋天,完成了WebRunner的开发工作。

WebRunner是HotJava的前身,这个原型系统展示了Java可能带来的广阔市场前景。

WebRunner改名为HotJava,并于1995年5月23日发表后,在产业界引起了巨大的轰动,Java的地位也随之而得到肯定。

又经过一年的试用和改良,Java1.0版终于在1996年年初正式发表。

Java带来的影响

  Java虽出现的时间不长,但已被业界承受,IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、Toshiba、Netscap和Microsoft等大公司已经购置了Java的许可证。

Microsoft还在其Web浏览器Explorer3.0版中增加了对Java的支持。

  另外,众多的软件开发商也开发了许多支持Java的软件产品。

如:

Borland公司的基于Java的快速应用程序开发环境Latte;Metrowerks公司和NaturalIntelligence公司分别开发的基于Machintosh的Java开发工具;Sun公司的Java开发环境JavaWorkshop;Microsoft也开发出系列Java产品。

数据库厂商如Illustra,Sybase,Versant,Oracle都在开发支持HTML和Java的CGI〔monGatewayInterface〕。

在以网络为中心的计算时代,不支持HTML和Java,就意味着应用程序的应用围只能限于同质的环境。

  Intranet正在成为企业信息系统最正确的解决方案。

它的优点表现在:

廉价、易于使用和管理。

用户不管使用何种类型的机器和操作系统,界面是统一的Web浏览器,而数据库、Web页面、应用程序〔用Java编的applet〕那么存在效劳器上。

开发人员只需维护一个软件版本,管理人员省去了为用户安装、升级、培训之苦,用户那么只需一个操作系统,一个Internet浏览器足矣。

  我们可以设想未来的计算方式,每个HomePage的实质是一个多媒体应用程序,这些程序用Java来开发。

Java应用程序运行在异质的机器、异质的操作系统之上,甚至于电冰箱、烤面包箱、防盗电子设备之中,用Internet把所有的电子设备连接起来,通过TCP/IP进展信息的交流。

Java应用程序之间既可以交换消息,也可以交换程序〔一个Java的小应用程序applet〕。

或许有一天,我们可以在Netscape浏览器里查看电冰箱的温度,向烤面包箱发一个电子。

  Java的出现是计算机信息交换的一个重要里程碑。

在单机时代,程序进程之间靠共享存储进展变量交换;在网络时代,运行在不同宿主机上的程序按网络协议进展无格式的消息〔二进制字符流〕交换,消息的语义由交换程序双方维护;在Java时代,运行在网络上的程序进程交换的是小应用程序〔applet〕。

小应用程序是什么?

它是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,而且有定义在数据上的操作。

未来可能进展代表〔Agent〕交换,代理有一定的智能性,那便是信息交换的更高级阶段。

  随着Internet的崛起、Java的诞生,巨型的、臃肿的应用软件开场向小型化开展,由众多“生活〞在Internet上的小应用程序〔applet〕相互协作完成信息的处理与传递。

Java会加速应用软件的小型化、网络化的趋势。

随着Internet的开展,软件必然是面向“群众〞,而不是“少数人〞的奢侈品,薄利多销将是网络应用软件的重要特点。

分布式对象技术保证了用多少,下载多少。

Java连同Internet,正在改变应用软件的开发和使用方式,一切都要围绕着网络,围绕着平台无关。

很多人认为,Word、Excel等传统的信息处理工具都必然走向萎缩,因为它们是单机时代的产物。

信息的价值在于使用和共享,Internet和Web是信息的使用和共享最快捷、最廉价的方式,Word将演化成为Web写作工具,Excel那么将演化成Web上的电子表格。

1.1.2JAVA的特点

〔一〕JAVA的主要特点

Java语言有下面一些特点:

简单、面向对象、分布式、解释执行、鲁棒、平安、体系构造中立、可移植、高性能、多线程以及动态性。

1.简单性

Java语言是一种面向对象的语言,它通过提供最根本的方法来完成指定的任务,只需理解一些根本的概念,就可以用它编写出适合于各种情况的应用程序。

Java略去了运算符重载、多重继承等模糊的概念,,且通过实现自动垃圾收集大大简化了程序设计者的存管理工作。

另外,Java也适合于在小型机上运行,它的根本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。

库和线程的支持也只有215KB左右。

2.面向对象

Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。

对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类那么提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

3.分布性

Java是面向网络的语言。

通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。

4.鲁棒性

Java在编译和运行程序时,都要对可能出现的问题进展检查,以消除错误的产生。

它提供自动垃圾收集来进展存管理,防止程序员在管理存时容易产生的错误。

通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进展选择以防止系统的崩溃。

另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。

5.平安性

用于网络、分布环境下的Java必须要防止病毒的入侵。

Java不支持指针,一切对存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊〞木马等欺骗手段访问对象的私有成员,同时也防止了指针操作中容易产生的错误。

6.体系构造中立

Java解释器生成与体系构造无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。

这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进展转换,使之能够在不同的平台运行。

7.可移植性

与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。

同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。

另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。

8.解释执行

Java解释器直接对Java字节码进展解释执行。

字节码本身携带了许多编译时信息,使得连接过程更加简单。

9.高性能

和其它解释执行的语言如BASIC不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。

10.多线程

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。

通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

11.动态性

Java的设计使它适合于一个不断开展的环境。

在类库中可以自由地参加新的方法和实例变量而不会影响用户程序的执行。

并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

〔二〕JavaApplet

Java语言的特性使它可以最大限度地利用网络。

Applet是Java的小应用程序,它是动态、平安、跨平台的网络应用程序。

JavaApplet嵌入HTML语言,通过主页发布到Internet。

网络用户访问效劳器的Applet时,这些Applet从网络上进展传输,然后在支持Java的浏览器中运行。

由于Java语言的平安机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担忧病毒的入侵。

虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进展改变,而不仅仅是动画的显示和声音的播放。

〔三〕丰富的类库Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。

1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。

2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。

3.输入输出包用统一的"流"模型来实现所有格式的I/O,包括文件系统、网络、输入

4.低级网络包用于实现Socket编程。

5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。

6.网络包支持Internet的TCP/IP协议,提供了与In-ternet的接口。

它支持URL连接,的即时访问,并且简化了用户/效劳器模型的程序设计。

〔四〕Java和C、C++对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++一样的传统,使得熟悉C、C++的程序员能很方便地进展编程。

同时,Java为了实现其简单、鲁棒、平安等特性,也摒弃了C和C++中许多不合理的容。

1.全局变量

Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。

例如:

ClassGlobalVar{publicstaticglobal_var;}

在类GlobalVar中定义变量global_var为publicstatic,使得其它类可以访问和修改该变量。

Java对全局变量进展了更好的封装。

而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。

2.Goto

Java不支持C、C++中的goto语句,而是通过例外处理语句try,Catch,final等来代替C、C++中用goto来处理遇到错误时跳转的情况,使程序更可读且更构造化。

3.指针

指针是C、C++中最灵活,也是最容易产生错误的数据类型。

由指针所进展的存地址操作常会造成不可预知的错误,同时通过指针对某个存地址进展显式类型转换后,可以访问一个C++中的私有成员,从而破坏平安性,造成系统的崩溃。

而Java对指针进展完全的控制,程序员不能直接进展任何指针操作,例如把整数转化为指针,或者通过指针释放某一存地址等。

同时,数组作为类在Java中实现,良好地解决了数组访问越界这一C、C++中不作检查的错误。

4.存管理

在C中,程序员通过库函数malloc()和free()来分配和释放存,C++中那么通过运算符new和delete来分配和释放存。

再次释放已释放的存块或未被分配的存块,会造成系统的崩溃;同样,忘记释放不再使用的存块也会逐渐耗尽系统资源。

而在Java中,所有的数据构造都是对象,通过运算符new为它们分配存堆。

通过new得到对象的处理权,而实际分配给对象的存可能随程序运行而改变,Java对此自动地进展管理并且进展垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。

5.数据类型的支持

在C、C++中,对于不同的平台,编译器对于简单数据类型如int,float等分别分配不同长度的字节数,例如:

int在IBMPC中为16位,在VAX-11中为32位,这导致了代码的不可移植性,但在Java中,对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。

6.类型转换

在C、C++中,可以通过指针进展任意的类型转换,常常带来不平安性,而Java中,运行时系统对对象的处理要进展类型相容性检查,以防止不平安的转换。

7.头文件

C、C++中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。

而Ja

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1