基于JAVA的分布式聊天系统设计含源文件_第1页
基于JAVA的分布式聊天系统设计含源文件_第2页
基于JAVA的分布式聊天系统设计含源文件_第3页
基于JAVA的分布式聊天系统设计含源文件_第4页
基于JAVA的分布式聊天系统设计含源文件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文题 目: 基于 JAVA的聊天系统设计学生姓名: * 学生学号: 079080617 系 别: * 专 业: * 届 别: 2011 指导教师: * *2011 届本科毕业论文1目 录前言 .(3)1 概述 .(3)1.1 开发背景 .(4)1.2 JAVA 语言简介 .(4)1.2.1 JAVA 语言的特点 .(4)1.2.2 JAVA 环境配置 .(5)1.3 分布式简介 .(7)1.4 JAVA 语言在分布式系统的应用 .(8)2 需求分析 .(9)2.1 系统说明 .(9)2.2 系统功能简介 .(9)2.2.1 基本功能 .(9)2.2.2 界面设计 .(10)3 系统设计 .(10)3.1 系统设计思想 .(10)3.2 聊天系统的功能模块设计 .(10)3.2.1 聊天系统工作原理图 .(10)3.2.2 聊天系统功能图 .(11)3.2.3 数据库设计 .(12)4 详细设计 .(12)4.1 开发环境工具 .(12)4.2 详细代码及说明 .(13)4.2.1 服务器程序设计 .(13)4.2.2 客户端程序设计 .(13)5 测试 .(17)6 总结 .(19)6.1 毕业设计总结与展望 .(19)6.2 经验和感想 .(20)致谢 .(20)参考文献 .(21)基于 JAVA 的分布式聊天系统设计2基于 JAVA 的分布式聊天系统设计学生:*指导老师:*摘 要:随着互联网的快速发展,网络聊天软件已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯 QQ、MSN-Messager 等等。本次设计的聊天系统就是模仿腾讯 QQ 来设计的。该系统开发主要包括网络聊天服务器程序和网络聊天客户端程序两个方面。前者通过 Socket 套接字建立服务器,服务器能读取、转发客户端发来的信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程 。开发中利用了计算机网络编程的基1本理论知识,如 TCP/IP 协议、客户端 /服务器端架构(C/S)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用 Eclipse 为基本开发环境和 JAVA 语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。关键字:JAVA;分布式;局域网; Socket;C/SDistributed JAVA-based chat systemStudent:*Supervisor:*Abstract: Along with the fast development of Internet, the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared . for example, Netmeeting, QQ, MSN-Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat. The former establishes the server through the Socket, the server can read and deliver the information which client side sends, and can renovate the users tabulation. The latter make a connection with the server, carries on communication between the client side and the client side. With the LAN correspondence mechanism principle, through inheritting the Thread kind to establish the multithreading directly. In the development, it uses the elementary theory knowledge which the computer network programmes. for example, TCP/IP agreement, Client/Server pattern, network *2011 届本科毕业论文3programming design method and so on. In the network programming, it realizes reading and transmission of the information, that is,informaton flows realize the information exchange, introduce information flow analysis for realizing a system, in which containes some basic software engineering methods. After analyzes these situations, this LAN chating tool takes Eclipse as the basic development environment and compiles in JAVA language. first, it will establish the system application prototype in a short time. then, for the initial prototype system, it needs constantly revised and improved, until a viable system.Key words:JAVA; distributed; lan; Socket;C/S 前言网上流行的诸如 QQ 的即时聊天工具是我们所熟知的聊天系统,只要记得对方的号码,上网时可以呼他,无论他在哪里,都可以和他进行即时聊天。这些软件系统大多都采用 C/S 工作模式 ,制作这些软件的公司在互联网上免费2提供下载客户端程序,却不提供服务器程序。所以对于未与互联网连接的私有网络,这些软件根本就用不上,更不会提供程序源代码。为了弄懂这些软件的工作原理,所以我就开始着手本课题的研究。分布式系统(distributed system) 是建立在网络之上的软件系统。正是因3为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。基 于 网 络 的 软 件 系 统 大 多 都 是 分 布 式 系 统 , 只 不 过 在 系 统 的 复 杂 程 度 上 有 所区 别 而 已 。 这 次 研 究 的 聊 天 系 统 就 是 典 型 的 分 布 式 系 统 。JAVA 本身就是一种分布式语言。J AVA 语 言 支 持 Internet 应 用 的 开 发 ,在 基 本 的 JAVA 应 用 编 程 接 口 中 有 一 个 网 络 应 用 编 程 接 口 ( JAVA net) ,它 提 供 了 用 于 网 络 应 用 编 程 的 类 库 , 包 括URL、 URLConnection、 Socket、 ServerSocket 等 。 JAVA 的 RMI(远 程 方4法 激 活 )机 制 也 是 开 发 分 布 式 应 用 的 重 要 手 段 。1 概述1.1 开发背景基于 JAVA 的分布式聊天系统设计4随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持, 而聊天室是人们最常见, 最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台。其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,易于维护和更新。 1.2 JAVA 语言简介JAVA 是一个由 Sun 公司开发而成的新一代编程语言。使用它可在不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种 WWW 浏览器,哪一种计算机,哪一种操作系统,只要 WWW 浏览器上面注明了“支持JAVA”,你就可以看到生动的主页。JAVA 已经逐步成为 Internet 应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自 PC 机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。JAVA 的出现是计算机信息交换的一个重要里程碑。在单机时代,程序进程之间靠共享存储进行变量交换;在网络时代,运行在不同宿主机上的程序按网络协议进行无格式的消息(二进制字符流)交换,消息的语义由交换程序双方维护;在 JAVA 时代,运行在网络上的程序进程交换的是小应用程序(Applet)。它是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,而且有定义在数据上的操作。未来可能进行代表(Agent)交换,代理有一定的智能性,那便是信息交换的更高级阶段。1.2.1 JAVA 语言的特点1.简单性2.面向对象JAVA 语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3.分布性JAVA 是面向网络的语言。通过它提供的类库可以处理 TCP/IP 协议 ,用5户可以通过 URL 地址在网络上很方便地访问其它对象。*2011 届本科毕业论文54.鲁棒性5.安全性用于网络、分布环境下的 JAVA 必须要防止病毒的入侵。JAVA 不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用 “特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易 产生的错误。6.体系结构中立7.可移植性8.解释执行9.高性能10.多线程多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。11.动态性1.2.2 JAVA 环境配置本方案设计采用 Eclipse ,在进行具体的操作之前,需要给系统下载安装 jdk,安装完成 jdk 之后,还需要对系统环境变量进行设置。步骤如下:第一步:进入我的桌面,右击“我的电脑”,选择“属性”选项,进入“系统属性“对话框,单击”高级标签“,如图 1-1 所示。第二步:点击上图箭头所示“环境变量”,进入图 1-2 画面。基于 JAVA 的分布式聊天系统设计6图 1-1 系统属性 图 1-2 环境变量第三步:单击“系统变量”部分的“新建按扭”,创建 JAVA-HOME 变量,在变量值栏内输入 C:jdk1.4.2_05; 如图 1-3 所示:JAVA_HOME 指明 JDK 安装路径,就是刚才安装时所选择的路径 C:jdk1.4.2_05,此路径下包括 lib,bin,jre等文件夹。图 1-3 编辑系统变量第四步:同样的方法创建 CLASSPATH 变量,在变量栏内输入.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (要加.表示当前路径)CLASSPATH 为 JAVA 加载类 (class or lib)路径,只有类在 classpath 中,JAVA命令才能识别。第五步:在变量栏内输入%JAVA_HOME%bin;%JAVA_HOME%jrebin 创建PAT,Path 使得系统可以在任何路径下识别 JAVA 命令。第六步:检测配置是否成功:编写一个 JAVA 程序,例如:public class HelloWorldApp*2011 届本科毕业论文7public static void main(String args)System.out.println(“HelloWorld!”);首先把它放到一个名为 HelloWorldApp.java 的文件中,这里,文件名应和类名相同,因为 JAVA 解释器要求公共类必须放在与其同名的文件中。然后对它进行编译:c:JAVAc g HelloWorldApp.java编译的结果是生成字节码文件 HelloWorldApp.class。最后用 JAVA 解释器来运行该字节码文件:c:JAVA HelloWorldApp结果是在屏幕上显示“Hello World! ”。表明环境变量配置成功。1.3 分布式简介所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散的存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。1.分布式应用最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过 1000 万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。2.分布式计算与互联网的普及基于 JAVA 的分布式聊天系统设计8随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下 CPU 的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。1.4 JAVA 语言在分布式系统的应用分布式计算不是一门年轻的技术,早在上个世纪年代末便已是计算机科学的一个独立分支了;它也不是一门冷僻的技术,从 C/S 模式到 P2P 模式 ,5从集群计算到网格计算,乃至风靡当下的云计算,都是其表演的舞台。另一方面,JAVA 作为一门应网络而生的语言,对分布式计算有着天然的友好性,同时也是当今最流行的编程语言。然而令人稍感意外的是,以“分布式 JAVA 应用”为专题的书籍并不多见,佳作则更少。至于国人所著者,请恕在下孤陋,尚未得见。不过细想之下,其实不足为奇。要开发一个高质量的分布式 JAVA应用,以达到高性能、可伸缩、高可用、低延迟的要求,同时保证一致性、容错性、可恢复性和安全性,是何等的不易啊。它对程序开发的挑战在于:不仅需要对 JAVA 语言、类库、各种框架及相关工具极为熟悉,还需要对底层的JVM 机制 、各种网络协议有足够的了解;它对分析设计的挑战在于:不仅需6要熟悉传统的应用架构模式,还需要掌握适用于分布式应用的架构模式和算法设计。此外,分布式应用对数据库管理员、测试分析人员等也提出了更高的要求。大型应用通常会拆分为多个子系统来实现,对于 JAVA 来说,这些子系统可能部署在同一台机器的多个不同的 JVM 中,也可能部署在不同的机器上,7但这些子系统又不是完全独立的,要相互通信来共同实现业务功能,对于此类JAVA 应用,我们称之为分布式 JAVA 应用。对于分布式 JAV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论