学位论文聊天室论文.docx

上传人:b****4 文档编号:5478838 上传时间:2022-12-16 格式:DOCX 页数:22 大小:198.52KB
下载 相关 举报
学位论文聊天室论文.docx_第1页
第1页 / 共22页
学位论文聊天室论文.docx_第2页
第2页 / 共22页
学位论文聊天室论文.docx_第3页
第3页 / 共22页
学位论文聊天室论文.docx_第4页
第4页 / 共22页
学位论文聊天室论文.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学位论文聊天室论文.docx

《学位论文聊天室论文.docx》由会员分享,可在线阅读,更多相关《学位论文聊天室论文.docx(22页珍藏版)》请在冰豆网上搜索。

学位论文聊天室论文.docx

学位论文聊天室论文

摘要

从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术开发了本聊天室工具。

该工具具有聊天室聊天、二人私聊、表情的应用以及请离用户的功能。

论文主要对当今聊天软件的发展情况、与该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述。

本聊天室设计初衷是为软件开发人员在局域网中方便交流,减少成本,消除由于交流不同带来的开发成本上升。

作为计算机网络的应用之一聊天工具,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大的加深了人们之间的联系。

它将会作为未来人们通过因特网相互联系和娱乐的主要平台。

聊天工具的开发主要用到了网络通信技术、语音的采集、压缩、传输、解压缩以及回放等技术,文件传输技术、windows的多线程技术以及视频的采集、压缩解压缩技术等。

本软件基于Socket通信,在此基础上,实现点对点聊天、广播聊天、一对多聊天、悄悄话以及表情,可以运行于任何支持TCP/IP协议的机器上。

用到了多线程的设计,因此线程之间的同步是一大关键之处。

由于系统采用C/S(Client/Server)结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。

关键词:

网络通信;私人聊天;Socket;JavaGUI

 

Abstract

Fromactualprojectapplicationangleembarking,takethecomputernetworkprincipleastheinstruction,intheunioncurrentnetworksomecommonlyusedtechnologydevelopmentthischatroom.Thissoftwarehasthechatroomtochat,twopeopleprivatetochat,theexpressionapplicationaswellaskickoutusersfunction.Thepresentpapermainlytocurrentchatssoftware'sstateofplay,withtochatthesoftwarerelatedeachkindoftechnologyaswellashowdoesthischatroomtorealizehasmadeadetailedelaboration.

Theoriginaldesignintentionofthischatroomisfacilitatestheexchangeforthesoftwaredevelopersinthelocalareanetwork,reducesthecost,eliminates,becauseexchangesthedevelopmentcostrisewhichbringsdifferently.Chatroomisoneofcomputernetwork'sapplications,whichhasreceiveduser'suniversalhobby.Ithastakenpeopleintoahypothesizednetworkworld,deepeningpeople'srelation.ItwillthemainplatformthroughtheInternetmutualconnectionandentertainment'sinfuture.Thedevelopmentofchatroommainlytousenetworkservicetechnical,thefiletransfertechnology,thewindowsandsoontechnology,pronunciationgathering,compressiontransmission,solutioncompressionandmulti-threadtechnologyaswellasvideofrequencygathering,thecompressionsolutioncompresstechniqueandsoon.ThissoftwarebasedontheSocketcorrespondence,basedonthis,realizeschats,thebroadcasttochat,onetomanytochatpoint-to-point,theintimateconversationandtheexpression,maymoveinanysupportstheTCP/IPagreementonthemachine.Withmulti-threaddesign,thereforebetweenthethreadsynchronizationisplaceofthebigkey.BecausethesystemusestheC/S(Client/Server)structure,theclientsideandtheclientsideaswellastheclientsideandtheserverendneedtotransmitsomecontrolmethods,thereforethesystemneedsfromdefinessomemessagetype,thisisanotherkeyofthischatroom.

Keyword:

Networkservice;Personalchats;Socket;JavaGUI

 

目录

引言1

第一章应用技术简介2

1.1Java语言简介2

1.2.J2EE平台简介2

1.3网络通信协议2

1.3.1TCP/IP整体构架概述2

1.3.1IP协议3

1.3.1TCP协议及端口3

1.4Socket与多线程3

1.5JavaGUI4

第二章系统分析5

2.1对已有聊天软件的分析5

2.1.1功能分析5

2.1.2网页聊天室5

2.1.3缺陷5

2.2项目开发的主要内容6

2.3项目开发的意义6

2.4系统方案说明6

2.5系统其他要求7

2.5.1系统性能要求7

2.5.2系统环境要求7

2.6结构流程8

2.6.1服务器结构流程图8

2.6.2客户端结构流程图9

第三章程序详细设计10

3.1聊天室服务器端设计10

3.1.2服务器设计思想10

3.1.2服务器端界面11

3.1.3.服务器端各主要类的定义及其功能11

3.1.4.服务器端用户管理功能的设计与实现12

3.1.5.服务器端显示消息的功能设计与实现12

3.2.聊天室客户端设计13

3.2.1.客户端设计思想13

3.2.2.客户端界面14

3.2.3.客户端各主要类的定义及其功能14

3.2.4.客户端登陆的设计与实现14

3.2.5.客户端发送消息的设计与实现14

3.2.6.客户端显示收到消息的设计与实现15

第四章系统测试16

4.1测试目标16

4.2测试过程16

4.2.1服务器测试16

4.2.2客户端测试19

4.3测试结果21

结论22

参考文献23

谢辞24

 

引言

自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。

如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。

现在已有的聊天软件和聊天工具不胜枚举,流行的主要有QQ,ICQ,MSNMessage,NetMeeting,mIRC和郎码UC和各种的网页聊天室等。

这些软件特别是QQ升级很快,其功能是越来越来强大,将代表着聊天软件的发展方向。

目前,聊天软件的功能除了最基本的文本聊天,已经可以语音聊天,图像聊天,视频聊天,文件传输等三维聊天,还发展了短信发送,无线聊天,在线游戏等功能,可以预见在不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。

目前的聊天软件以Web模式为主,但HTML作为一种样式语言,HTML技术本身却存在着诸多的缺陷,如它限制了交互式的选择,创建和重复使用交互式组件也比较困难,使用不同的扩充有将导致兼容性问题。

尽管在目前的Internet上,它充当了数据表示的主要角色。

这种不协调在Internet发展的初期还没有什么影响,但随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。

以Web服务器的传送方式可分为静态页面和动态页面。

以HTML文件的形式传送固定数据称之为静态网页;对用户的请求进行分析,并将结果声称其它代码,利用客户端进行传送。

此时,会生成以.cgi、.jsp、.asp等为扩展名的脚本程序文件,这些文件根据服务器脚本的分析结果会有所不同,称之为动态网页。

单纯的静态页面已经不能满足发展的需要。

因为静态页面是用单纯的HTML语言组成的,它没有交互性。

而为了与上网的用户产生交互的关系,随后便发展出了如JavaScript、CGI、ASP、JSP等各种客户端与服务器端的开发技术.JSP是第三代解决方案,它易于第二代解决方案相结合,创建动态内容,它使与其它各种技术相结合的以网络为基础的应用更容易和更快速的建立起来。

这些技术包括:

网络服务器,网络浏览器,应用服务器和其他开发工具。

该毕业设计课题为基于C/S的应用Socket技术的聊天工具的设计与实现,它是在Socket通信和文本聊天的基础上来实现一对一、一对多聊天。

它要求该聊天软件能够自建服务器,被应用在一个个独立的自治系统中,灵活性很大。

第一章应用技术简介

1.1Java语言简介

Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。

Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。

Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。

在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。

现在Java平台已经嵌入了几乎所有的操作系统。

这样Java程序可以只编译一次,就可以在各种系统中运行。

Java应用编程接口已经从1.1x版发展到1.2版。

目前常用的Java平台基于Java1.4,最近版本为Java1.6。

1.2.J2EE平台简介

J2EE是美国Sun公司刚刚推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。

目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。

J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。

J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC(JavaDataBaseConnectivity)应用程序接口(API,ApplicationProgramInterface)技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。

其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

1.3网络通信协议

1.3.1TCP/IP整体构架概述

TCP/IP协议并不完全符合OSI的七层参考模型。

传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。

该模型的目的是使各种硬件在相同的层次上相互通信。

这7层是:

物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

这4层分别为:

应用层:

应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:

在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:

负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:

对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。

1.3.1IP协议

IP网络中每台主机都有唯一的IP地址,IP地址用户标识网络中的每个主机。

IP地址是一个32为的二进制数序列。

为了便于在上层应用中方便地表示IP地址,可以把32位的二进制数序列分为4个单元,每个单元占8位,然后用十进制整数来表示每个单元,这些十进制整数的取值范围是0~255。

如某主机的IP地址可以是192.166.3.4。

IP地址由两部分组成:

IP网址和IP主机地址。

IP网址表示网络的地址,IP主机地址表示网络中的主机的地址。

网络掩码用来确定IP地址中哪部分是网址,哪部分是主机地址。

1.3.1TCP协议及端口

IP协议在发送数据包时,途中会遇到各种事情。

例如,可能路由器突然崩溃,使包丢失。

又如,一个包可能沿低速链路移动,而另一个包可能沿高速链路移动而超过前面的包,最后使得包的顺序搞乱。

TCP协议使两台主机上的进程顺利通信,不必担心包丢失或包顺序搞乱。

TCP跟踪包顺序,并且在包顺序搞乱时按正确顺序重组包。

如果包丢失,则TCP会请求源主机重发包。

1.4Socket与多线程

Socket是建立在TCP/IP协议基础之上,可以看作是通信连接两端的收发器,服务器与客户都通过Socket来收发数据。

除了Socket的第一个不带参数的构造方法以外,其他构造方法都会试图建立于服务器的连接,如果连接成功,就返回Socket对象;如果因为某些原因连接失败,就会抛出IOException。

当客户请求于服务器程序连接时,可能要等待一段时间。

默认情况下,客户会一直等下去,直到连接成功,或者出现异常。

如果希望限定等待连接的时间,可以通过connect(SocketAddressendpoint,inttimeout)方法来设置超时时间,以毫秒为单位。

在通信过程中,如果发送方没有关闭Socket,就突然终止程序,接收方在接收数据时会抛出SocketException。

发送方发送完数据后,应该及时关闭Socket或关闭Socket的输出流,这样,接收方就能顺利读到输入流的末尾。

多线程函数是Win32的一个重要方面,其编程技术较为新颖,在程序设计思路上不同于传统的模块结构化方法,比一般的面向对象的思路也较为复杂,尤其是对于多处理器平台的处理更为复杂。

要设计出性能良好的多线程程序,不仅需要对操作系统的处理过程很清楚,还需要对具体应用有一个全面的认识,并对应用中各线程部分的关系非常清楚,对同步模块中的同步对象的具体含义应尽可能地清晰明了,以利于在程序中控制同步事件的发生,避免出现死锁或不能同步处理的现象。

线程的创建比较简单,可以利用CreateThread或者AfxBeginThread来实现,终止线程可以用TerminateThread来实现。

线程只见信息的共享可以利用全局变量来实现或者消息函数来实现。

多线程的设计关键之处在于线程之间的同步。

1.5JavaGUI

为了方便用Java构建图形用户界面,Sun最初提供了一个在所有平台下具有的独特Java外观的图形界面库。

Sun在applet技术策略方面的首要伙伴Netscape提出applets应该维持和运行时平台一样的外观。

他们希望applets在某一平台下在显示和行为上能够像其他应用程序一样。

为了实现Netscape的"本地外观"的目标,在JDK的第一个发布版中包含了AWT这个库。

AWT的缺省实现使用了"对等"机制,即每一个Java GUI窗口部件都在底层的窗口系统中有一个对应的组件。

 

第二章系统分析

2.1对已有聊天软件的分析

如今,聊天软件种类繁多,发展迅速。

下面简要的对已有的聊天软件作一下总结分析。

2.1.1功能分析

作为如今流行的聊天软件之一QQ,功能已经非常强大,基本上朝着三个大的方向发展,即个人及时通信,企业实时通信和娱乐资讯。

它的功能主要有:

(1)个人文本聊天

(2)个人语音聊天

(3)个人视频聊天

(4)图像传输

(5)文件传输

(6)在线游戏

(7)聊天室聊天

(8)隐身,上线

(9)群聊天

(10)企业级实时通信

聊天软件的发展方向是三维化,人性化,综合化。

2.1.2网页聊天室

作为另一种聊天软件形式,网页聊天室也受到用户的普遍欢迎。

网页聊天室的优点就是很好的利用了浏览器的功能,用户不需要安装任何新的软件,即可加入聊天室聊天。

现在的网页聊天室除了文本聊天之外,语音聊天也很常见。

由于其客户端的简化,其功能必然受到限制。

2.1.3缺陷

不管是QQ,还是网页聊天室,其最大的缺陷就是服务器固定,用户必须连接上服务器。

如果想在一个自治系统之内(一个孤立的网络)通信,NetMeeting是一款不错的软件。

它服务器有很强的灵活性,任何用户都可以建立自己的服务器。

2.2项目开发的主要内容

设计并实现基于Socket的文本聊天程序包括广播聊天,二人私聊。

涉及的内容包括用户登录,聊天方式的选择,附带表情,以及悄悄话选项。

管理员身份可以看到私聊的和内容。

由一个管理员运行ChatRoomServer建立主机服务器,其他用户运行ChatRoomClient运行客户端,通过服务器的IP和设置的端口号与之建立连接。

在服务器端可以显示用户登录的信息,客户端可以看见当前在线用户的人数和昵称。

在由于开发目的的原因,所以不采用登录验证模式,只要输入用户昵称即可登录,对恶意刷屏或语言不礼貌者,管理员可以请离该用户。

2.3项目开发的意义

本项目是作为本科的毕业设计课题提出来的,它规模适中,适合于个人开发,能够锻炼同学的学习新知识能力,锻炼同学的编程能力,锻炼同学的软件工程的思维方式。

它的具体意义如下:

(1)目前,计算机的发展离不开网络这一方向,网络将大大扩展计算机的功能,研究计算机在网络方面的技术以及应用,挖掘计算机的网络潜能,将能够大大提高我们对计算机的本身的认识,同时也能加深对计算机网络的认识。

(2)网络的一大应用就是用于用户之间联络的聊天工具,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。

(3)C/S结构的优势在不依赖于浏览器,可以在任何操作系统中运行。

而且客户端也可以进行复杂的业务逻辑。

这些都是B/S系统所无法达到的。

2.4系统方案说明

网络聊天室涉及的一个服务器端和N个客户端。

客户向服务器发送请求,服务器对请求作出响应。

客户尝试与服务器建立连接。

一旦连接建立起来,客户和服务器就可以通过套节字进行通信。

本系统中,主要有两个应用程序,分别为服务器程序和客户端程序。

用程序主要用于消息转发、客户登陆信息的管理以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。

本系统采用C/S(Client/Server)体系结构(见图2-1),即客户机/服务器体系结构。

其特点是客户端只装载应用软件,而把复杂的消息处理、用户监控等放在服务器端实现,这样就可以大大简化客户端软件。

 

图2-1C/S体系结构图

其大致实现模型是:

(1)服务器分配一个端口号。

一旦服务器启动,既使用ListenThread线程对端口进行不间断监听.如果客户请求一个连接,服务器使用accept()方法打开一个socket连接。

(2)客户在host和port端口建立连接。

(3)服务器和客户端使用InputStream和OutputStream进行通信。

2.5系统其他要求

2.5.1系统性能要求

(1)时间特性

对于公共聊天和聊天室聊天,要求响应每条消息的时间不超过1秒钟,否则用户将感到这个聊天工具反应迟钝。

对于二人文本私聊,要求响应每条消息的时间不超过500ms,这样使得二人私聊能够有种当面聊天的感觉。

(2)灵活性

要求该聊天工具能够适用于多种协议上,而且能够在任意个自治系统之内使用,要求服务器自建非常灵活。

2.5.2系统环境要求

(1)硬件要求:

安装了网卡,并连入局域网。

(2)软件要求:

Windows98以上的系统;安装了支持Socket通信的TCP/IP或者协议;JDK1.4以上版本。

2.6结构流程

2.6.1服务器结构流程图

 

图2-2服务器结构流程图

 

2.6.2客户端结构流程图

 

图2-3客户端结构流图

 

第三章程序详细设计

网络聊天室涉及的一个服务器端和N个客户端。

客户向服务器发送请求,服务器对请求作出响应。

客户尝试与服务器建立连接。

一旦连接建立起来,客户和服务器就可以通过套节字进行通信。

3.1聊天室服务器端设计

服务器端是整个聊天室的主要部分,它包含了客户端接入以及处理其发出请求的一系列方法,是整个聊天是的核心,客户发送的信息也是通过服务器发送到其他用户的。

3.1.2服务器设计思想

作为服务器设计,需要考虑以下几点问题:

(1)安全性

服务器的安全性包括两部分,一是服务器本身软硬件配置上的安全性,比如防止系统漏洞;二是服务器和客户端通讯协议的安全性设计,防止通过协议本身导致服务器被非法攻击等。

(2)并发服务能力

主要是线程间的锁控制。

涉及到锁控制的,主要是因为共享问题。

共享分为两种:

一是代码共享部分;一是数据共享部分。

其中做主要的还是数据共享部分。

但是没有什么好的解决办法,唯一的办法就是检查这个共享是不是真正必要的,这些数据可不可以分成两部分以形成不是共享的。

(3)性能的可线性提高

这主要指服务器的服务能力可以通过增加线程的方式线性提高性能。

这就要求服务器的服务能力分担是均衡的,即实现良好的负载平衡。

 

3.1.2服务器端界面

 

图3-1服务器端界面

3.1.3.服务器端各

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

当前位置:首页 > 解决方案 > 学习计划

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

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