网络聊天室的设计.docx
- 文档编号:27980925
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:31
- 大小:130.61KB
网络聊天室的设计.docx
《网络聊天室的设计.docx》由会员分享,可在线阅读,更多相关《网络聊天室的设计.docx(31页珍藏版)》请在冰豆网上搜索。
网络聊天室的设计
毕业论文(设计)
题目:
网络聊天室的设计
院(系):
计算机科学与技术学院
专业年级:
计算机科学与技术2007级
姓名:
******
学号:
073210240
指导教师:
******讲师
2008年04月01日
原创性声明
本人郑重声明:
本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。
对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。
论文作者签名:
日期:
关于毕业论文使用授权的声明
本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属******。
本人完全了解******有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权******可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为******。
本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为******。
论文作者签名:
日期:
指导老师签名:
日期:
网络聊天室的设计
摘要
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络。
由信息时代的到来引发了一场知识和信息革命,计算机和现代网络技术的广泛应用极大地促进了社会经济的发展,同时也带来了一些新兴产业的发展,比如聊天室。
聊天室已经慢慢成为人们生活的一部分,呈现出良好的势头和广阔的发展前景。
因此产生了制作一个类似QQ的网络聊天工具的想法。
Java是一种程序设计语言,它具有简单的、完全面向对象以及与平台无关的结构,也具有可移植性、高性能和安全性,并提供了多线程的功能,而Java语言最大的成功之处在于它的平台无关性和具有强大的网络编程功能,基于Java网络编程的强大功能本人将用Java编写一个聊天系统。
本文主要介绍了以当前流行的Java语言开发的一个简单的网络聊天室。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天。
该小聊天室主要是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。
和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等。
本聊天室主要由登录页面、验证页面、聊天室页面、离开页面、查看聊客页面、帮助页面等页面构成。
整个设计简洁明了、实用,使用简单。
关键词:
java语言,聊天室,多线程,客户机/服务器
Thedesignofchartroomsystembasedonnetwork
Abstract
Asthenetworkbecomemoreandmoredeveloped,peoplebecomemoreandmoreleantothenetwork,andcannotleavewithoutit.Theinformationagearrivalhasinitiatedaknowledgeandinformationrevolution,widespreadapplicationofthecomputerandthemodernnetworktechnologyenormouslypromotedthesocialeconomydevelopment,atthesametimehasalsobroughtsomeemergingindustrialdevelopment,forinstancechartroom.Chartroomhasalreadybecomeapartofpeople’slifeslowly,presentedthegoodtendencyandthebroadprospectsfordevelopment.SowecreateanetworkchatmediumjustliketheQQ.
Javaisaprogramminglanguagewiththesimpleconstructionwhichiscompletelyobject-oriented。
Javaalsopossesstheportability,highperformanceandsecurity,andprovidethemulti–threadfunction.Thebestsuccessisitsanditsstrongnetworkprogrammingfunction,baseonthis,I’dliketouseJavatowriteachatsystem.
Generallyspeaking,mostchatmediumconsisttheCLIENTPROGRAM,serverprogramandtheserverwhichisusetocontentthedatabase.Thissystemadoptclient/serverpatternandtheSocketclassprovidebyJavatocommunicatetheclientandserver.Becauseofchatismanytomany,themultithreadingfunctioncanimplementthemany-manychat.AchartroomwasintroducedbyapopularJavalanguagepresentlyinthiscontext.Thisisachartroomthatdesignedtomanyfriendwholikeschattingonline.Thehopecangiveeverybodyintheexistingmultitudinouschartroommorethanonekindofchoices.Comparedwithmanylarge-scalenetworkschartroomsthissmallchartroomisquitetobesimple,butcanrealizethebasicfunctionwhichthedottedpairischattedmore,point-to-pointchatsandsoon.Thischartroommainlyconsistwithregisteringthepage,confirmingthepage,thechartroompage,leavingthepage,theexaminationofchartingguestpage,helpingpageconstitutionandsoon.EntiredesignConcise,practicalandtheuseissimple.
KeyWords:
Java,chartroom,Multithreading,Client/Server
1概论
1.1JAVA的网络功能与编程
1.1.1JAVA概述
美国硅谷有一句行话,每10年~15年有一次轮回。
最近的一次轮回就是从Java开始。
Java是一个由Sun公司开发而成的新一代编程语言。
使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。
不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持Java”,你就可以看到生动的主页。
Java正在逐步成为Internet应用的主要开发语言。
它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。
Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。
Sun内部人员把这个项目称为Green,那时WorldWideWeb还在图纸上呢。
该小组的领导人是JamesGosling,是一位非常杰出的程序员。
他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。
他是SunNeWs窗口系统的总设计师。
也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。
Java语言的转折点
到了1994年,WWW已如火如荼地发展起来。
Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台,它应是一种实时性较高、可靠安全、有交互功能的浏览器。
于是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(CommonGatewayInterface)。
在以网络为中心的计算时代,不支持HTML和Java,就意味着应用程序的应用范围只能限于同质的环境。
Intranet正在成为企业信息系统最佳的解决方案。
它的优点表现在:
便宜、易于使用和管理。
用户不管使用何种类型的机器和操作系统,界面是统一的Web浏览器,而数据库、Web页面、应用程序(用Java编的applet)则存在WWW服务器上。
开发人员只需维护一个软件版本,管理人员省去了为用户安装、升级、培训之苦,用户则只需一个操作系统,一个Internet浏览器足矣。
Java的出现是计算机信息交换的一个重要里程碑。
在单机时代,程序进程之间靠共享存储进行变量交换;在网络时代,运行在不同宿主机上的程序按网络协议进行无格式的消息(二进制字符流)交换,消息的语义由交换程序双方维护;在Java时代,运行在网络上的程序进程交换的是小应用程序(applet)。
小应用程序是什么?
它是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,而且有定义在数据上的操作。
未来可能进行代表(Agent)交换,代理有一定的智能性,那便是信息交换的更高级阶段。
1.1.2JAVA的特点
Java语言有下面一些特点:
简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。
(一)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通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
(二)JavaAppletJava语言的特性使它可以最大限度地利用网络。
Ap-plet是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协议,提供了与Internet的接口。
它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。
1.1.3JAVA语言在网络上的应用
Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。
例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。
在编程处理上,一般先生成一个URL类型的对象,然后用Java中相应的方法(method)获取该对象所代表的资源。
下面列举一个Java从网络上获取图象的的方法以说明。
JavaApplet可以直接从网络上结点获取图象并显示出来,Java提供了如下方法可以创建对应于其他结点的图象:
getImage(newURL(字符串))
其使用格式可有两种:
Stringurl=“结点URL”;
Imageimage;
try{
image=getImage(newURL(url));
}
catch(Exceptione){
System.out.println(“Can’topentheURL“);}
或
URLimgur=null;
Imageimage;
try{
imgur=newURL(“结点URL“);
}
catch(MalformedURLExceptione){
System.out.println(“Can’topentheURL“);}
image=getImage(imgur);
前一种格式用“newURL(url)”生成URL对象,并直接作为getImage的参数,后一种格式先用“newURL(url)”生成一个URL对象,再传给getImage,两种格式本质上是一样的,下面是一个完整的实例(img.java):
importjava.applet.*;
import.*;
importjava.awt.*;
publicclassimgextendsApplet{
Imageimage;
publicvoidinit()
{
Stringurl=“lttp:
//
try{image=getImage(newURL(url));
}catch(Exceptione){}
}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,this);
}
}
将上程序以img.java存盘,执行javacimg.java,将得到编译后生成的img.class,最后创建调用这两个JavaApplet的HTML文档,并放在与img.class相同的目录,对应的HTML文档可如下(img.html):
以上仅是Java在客户端应用的一些方面,目前,Java更广泛的应用是在服务器端。
1.2Jcreator开发工具的概述
Jcreator是一个小巧灵活的Java开发工具,它可将Java的程序的编写,编译,运行和调试集成进自身的环境中直接进行开发,且无需进行环境变量的设定.我们可以直接在Jcreator中编辑Java源文件,选择相应的菜单和点击对应的按钮就可以完成Java程序的编译,运行等工作,十分方便。
由于Jcreator集成了编辑源文件,编译,运行调试为一体,所以又被称为IDE(IntegrationDeveloperEnvironment,集成开发环境),其他的具有类似特点的开发工具也被称为IDE
Jcreator是共享软件,用来开发基于Java的应用程序,Java程序开发需要安装Java的开发工具包(JDK),但Jcreator安装程序本身并不附带,所以需要先安装jdk,才能利用Jcreator进行开发.
1.3IP/TCP协议常识
1.3.1IP、TCP的特点
TCP/IP(TransmissionControlProtocol/InternetProtocol)是传输控制协议/网际协议的缩写,TCP/IP是当今网络互联的核心协议。
TCP/IP协议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。
IP协议的作用:
第一,它是网络层的协议,提供互联网上数据传输的统一格式。
第二,提供不可靠的无连接的服务。
第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。
TCP协议的功能:
差错控制——可靠性、面向连接、分段(Segment)、端口号。
TCP是传输控制协议,是面向连接的提供了一种可靠的传输服务,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。
TCP/IP协议具有以下特点:
1、协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。
2、统一分配网络地址,使得每个TCP/IP设备在网络中都具有唯一的IP地址。
3、实现了高层协议的标准化,能为用户提供多种可靠的服务。
1.3.2TCP/IP协议进行传输数据的传输过程
应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP数据包封装在IP包内,通过网络送给目的TCP。
接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。
在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。
TCP只是调用IP接口,向TCP提供所有TCP需要的服务。
1.3.3端口号
有的时候,一个ip地址不能完整的标识一台服务器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是端口。
端口实际是一个16位长的地址,他的范围是0~65535之间,其中0~1023是熟知端口,主要是给提供服务的应用程序使用,这些端口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 聊天室 设计