学位论文-—基于java的网络聊天室-服务器端.doc

上传人:人*** 文档编号:558527346 上传时间:2022-10-24 格式:DOC 页数:24 大小:351.50KB
返回 下载 相关 举报
学位论文-—基于java的网络聊天室-服务器端.doc_第1页
第1页 / 共24页
学位论文-—基于java的网络聊天室-服务器端.doc_第2页
第2页 / 共24页
学位论文-—基于java的网络聊天室-服务器端.doc_第3页
第3页 / 共24页
学位论文-—基于java的网络聊天室-服务器端.doc_第4页
第4页 / 共24页
学位论文-—基于java的网络聊天室-服务器端.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《学位论文-—基于java的网络聊天室-服务器端.doc》由会员分享,可在线阅读,更多相关《学位论文-—基于java的网络聊天室-服务器端.doc(24页珍藏版)》请在金锄头文库上搜索。

1、目录1 绪论21.1背景及意义11.2研究现状12 系统分析32.1 实现技术32.2系统分析63系统设计73.1系统功能结构73.2系统业务流程83.3系统实现原理83.模块化设计93. 数据库设计93.开发环境与运行环境103.7客户端结构103.8服务器端结构114 系统实现114.1新用户注册模块114.2 登录模块134.3消息通信模块:与显示的在线好友间通信154.4 服务器端175总结22参考文献23致谢231 绪论1.1背景及意义网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行即时的信息交流。比如QQ聊天工具,它就是利用网络通信技术开发的一款众所周知的网

2、络聊天工具。目前,信息交流是互联网提供的主要内容,网络通信系统有多重实现方式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登录统一的聊天服务器。当今主流的聊天工具有QQ,ICQ , MSN Message 等,国内最热门的当属QQ,腾讯 QQ是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。您可以使用QQ和好友用户进行交流、信息即时发送、即时回复、收发即时,功能全面。QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。 网络聊天以成为上网族的一种普遍的休闲方式,可以毫不夸张的说,全国的网民中没人不知道Q

3、Q聊天软件,所以,一款好的即时通信聊天软件成了上网的必备工具之一。网上有很多的聊天软件可供网民们选择,各有不同的特点和长处,可满足不同人的各种需求。局域网聊天工具,是在局域网内部使用的,用户之间用来交流的一个工具,一般都具有文本聊天和文件传输功能。局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。1.2研究现状目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC等,国外有著名的MSN等。本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速

4、占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。腾讯的成功与其对QQ的不断创新和完善是分不开的。参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。其模型如图1.1:图1.1 腾讯QQ服务器-客户端模型与腾讯QQ不同,微软的MSN Messenger只使用了TCP作为传输层通信协议,所有客户端与服务器进行连接,然后通过与服务器的TCP连接进行中转通信。其模型如图1.2:

5、图1.2 MSN服务器-客户端模型腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器的处理压力,但其内部协议和实现复杂度都较高。而MSN Messenger所有数据都要经过服务器,服务器压力可想而知(难怪平时很少见到使用MSN进行语音视频聊天的)。2 系统分析2.1 实现技术2.1.1 Java 语言Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由Sun公司的詹姆斯高斯林(James Gosling)等人于1990年代初开发。它最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由

6、于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风格十分接近C+语言,Java继承了C+ 语言面向对象技术的内核,舍弃了C+语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在Java SE 1.5版本中Ja

7、va又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装拆箱等语言特性。Java不同于一般的编译运行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。与传统程序不同Sun公司在推出Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而

8、非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java语言有以下特点:简单(Simple):指的是去除了C/C+中较少使用或可能不安全的功能,例如指标,运算子重载,多重继承等。 物件导向的(Object-oriented):利用OOP的三种基本特性:PIE(多型,继承,封装),来设计出可重複使用的元件,使系统有弹性易于维护。 网路的(Network-Savvy):提供容易使用

9、的API来撰写网路程式 。直译式的(Interpreted):bytecode在JVM上执行时,JIT负责转换为机器码。 稳健的(Robust):捨弃了对记忆体的指标运作。 安全性(Secure):资源回收处理 (Garbage Collection)由JVM自行作记忆体管理,例外处理 (Exception) 可预防突发错误的产生。 结构中立(Architecture Neutral):程式执行在虚拟机器上。 可携的(Portable): Write once, run anywhere指的是由JVM与不同的作业系统沟通。 高效率的(High Performance):利用HotSpot, J

10、IT技术改善效能。 多执行绪的(Multithreaded):Java程序可发出多隻并行的轻量化行程。 动态的(Dynamic):Java程式执行时动态的连结类别库。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2.1.2

11、Java与Internet Java语言取得成功的领域之一就是网络(其他语言)数页代码-(Java)一条语句。TCP/IP(传输控制协议/网间协议)是internet的主要协议,定义了计算机和外设进行通信所使用的规则(应用层,传输层,网络层,链路层)。大多数基于internet的应用程序被看作TCP/IP协议的上一层, 如 : ftp, http, smtp, pop3, telnet, nntp等。 IP地址:TCP/IP网络中的每台计算机都有唯一的地址-IP地址。在Java中,有一个用来存储internet地址的类叫InterAddress。Java提供的网络功能有三大类: URL,Soc

12、ket,Datagram。1、URL是三大功能中最高级的一种,通过URL Java程序可以直接送出或读入网络上的数据。2、Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道。3、Datagram是更低级的网络传输方式,它把数据的目的纪录在数据包中,然后直接放在网络上。2.1.3 Socket编程1)TCP/IP协议TP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议/网际协议的缩写,TCP/IP是当今网络互联的核心协议。TCP/IP协议是聊天工具在建立连接下使用的协议,该协议是网络中使用的通讯

13、协议,包括传输控制协议和网际协议,TCP/IP协议是网络互连的标准协议,可使不同环境下不同节点之间彼此通信,是连入互联网的所有计算机在网络上进行各种信息交换和传输所必须采用的协议。2)TCP/IP协议进行传输数据传输的过程应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP 也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调

14、用IP接口,向TCP提供所有TCP需要的服务。3)端口号有的时候,一个ip地址不能完整的标识一台服务器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是端口。端口实际是一个16位长的地址,它的范围是065535之间,其中01023是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都知道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配要求通信的各个客户端应用程序。在数据传输过程中,各种服务器不断的检测分配给它的端口,一边发现要求和它通信的客户端。4)Socket通信机制Soc

15、ket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点称为套接字,套接字是在比较低的层次上通信的。Socket所完成的通信时一种基于连接的通信,即在通信开始之前先由通信双方确认身份并建立一条专用的虚拟连接通道,然后他们通过这条通道传送数据信息进行通信,当通讯结束时再将原先所建立的连接断开。Socket程序的工作过程:1、建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。2、数据通信:利用虚拟连接通道传送数据信息。3、关闭:通信结束时,再将所建的虚拟连接断开。三次握手:第一次握手:原主机发送一个带有本次连接的序号的连接请求。第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有一个本次连接序号和源端机连接序列号的确认。第三此握手:源端机收到含有两次初始序列号的应答后,再向目的主机发送一个带有两次连接的序列号的确认。具体过程如下:主机A 主机BACK=1,SYN=1,SEQ=aaaaaaaaaaACK=1第一次握手,主机A向主机B发送连接请求第二次握手,主机B收到主机A的请求,向主机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号