基于Java的聊天室程序设计.doc
《基于Java的聊天室程序设计.doc》由会员分享,可在线阅读,更多相关《基于Java的聊天室程序设计.doc(41页珍藏版)》请在沃文网上搜索。
1、基于Java的聊天室程序设计CHAT ROOM PROGRAMMING BASED ON JAVA 摘 要网络聊天室是一种应用广泛的网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想项目。可以使用多种编程语言和开发功能完善网络聊天室。本毕业设计论文介绍用Java语言设计和实现一个网络聊天室的过程,本系统采用C/S架构设计,整个项目分为服务器端和客户端。使用最新Java2标准Swing组件,开发出简洁美观和布局合理的用户和服务器界面;利用Socket网络开发急速实现客户端和服务器端的连接访问,实现网络功能;通过对数据流操作的合理设计,实现信息传递、接受和数据保存。同时采用多线
2、程、多任务的设计思想开发出性能稳定,功能全面的服务器。完整的实现系统的功能。该聊天室工具主要解决了两方面的问题。服务器端和客户端。在服务器端可以实现如下功能:能够处理用户的注册;通过身份验证方式处理用户登录;可以向所有在线用户广播信息;对于不良聊天人士给予警告或者赶出聊天室;删除长久不使用的用户信息;配有操作文档;及时接收用户的服务请求帮助。在客户端可以实现如下功能:聊天信息的传输,支持私聊,支持表情等功能。 关键词:聊天室; Java; Swing组件; Socket技术IABSTRACTThe network chat room is a kind of applied extensive
3、 network chat method, operate in case and the function is abundant, It can be used as a good case for learning of Java design language and the Object-Oriented Programming language, There is many programming language of design to develop a network chat room with perfect function. This graduation thes
4、is of design introduction how to use the Java language design and carry out network chat room, The system adoption the C/S structure design, the whole system is divided into the server and client. Used standard modules of Swing of latest Java2, develop a simple and direct beauty user interface, We m
5、ake use of the Socket technology to interconnect the server and client by net-work; organize the data by good design of data stream to sent or accept the message between users and to record the message for data ever; we also use the multi-thread to make the program with many function.This chat rooms
6、 tool will solve two main problems, one is server and the other is customer. It will obtain following functions with server: handing the registration of customer; passing verification of body method; processing customer logging; broadcasting information to on-line customers; warning and evicting bad
7、 chat personage out of chat room ; deleting long-last the customer information; having operating text; accepting customers serving requests. It will obtain following functions with customer: delivering the chat information; supporting private chat; supporting the facial expression; ect.Key words:cha
8、t; Java; Swing component; Socket目 录第一章 系统开发的意义及需求分析1第一节 课题来源1第二节 需求分析1第二章 系统开发技术2第一节 Java的网络功能与编程2第二节 IP/TCP协议常识3第三节 Socket的简介3第四节 Swing的简介5第五节 C/S结构6第三章 系统分析与设计方案8第一节 开发环境及工具8第二节 聊天系统的总体设计要点8第三节 系统的功能模块划分及设计原理10第四章 系统实现与最终效果25第一节 系统工作的过程25第二节 使用方法25第三节 各功能模块运行效果25第四节 功能模块测试31第五章 总 结32第一节 毕业设计总结和展望3
9、2第二节 经验和感想32参考文献34致 谢3534第一章 系统开发的意义及需求分析第一节 课题来源根据当前网络的需求,网络聊天越来越受到各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而本人也学习过Java语言,对网络编程也较有兴趣,为了更好的考验自己对Java语言的掌握程度,本人就决定以基于Java的网络聊天室为毕业设计,希望通过这一次能进一步提高本人的网络开发编程的能力。第二节 需求分析聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任务,对设计这个程序来
10、说,等于完成了一半。首先来看一下服务器。服务器端的任务:1、服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接。 2、服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。客户端应该完成的工作包括:1、与服务器端建立通信通道,向服务器端发送信息。2、接收来自服务器的信息。相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。第二章 系统开发技术第一节 Java的网络功能与编程一、Java概述:
11、美国硅谷有一句行话,每10年15年有一次轮回。最近的一次轮回就是从Java开始。Java是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种www浏览器,哪一种计算机,哪一种操作系统,只要www浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。Java语言有下面一些特点:简单、面向对象、分布式、解释执行、 安全、体系结构中立、可移植、高性能、多线程以及动
12、态性。丰富的类库Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。语言包提供的支持包括字符串处理、多线程处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。输入输出包用统一的流模型来实现所有格式的I/O,包括文件系统、网络、输入低级网络包用于实现Socket编程。抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件, 包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。网络包支持Internet的TCP/IP协议,提供了与Internet的接口。 它支持URL连接,WWW的即时访问
13、,并且简化了用户/服务器模型的程序设计。Java和C、C+对于变量声明、参数传递、操作符、流控制等使用了相同的传统,使得熟悉C、C+的程序员能很方便地进行编程。同时, Java为了实现其简单、安全等特性,也摒弃了C和C+中许多不合理的内容1。二、Java语言在网络上的应用Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用Java中相应的方法(method)获取该对象所代表的资源。第二节 IP/TCP协议常识一、IP
14、、TCP协议的特点:TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议/网际协议的缩写, TCP/IP是当今网络互联的核心协议。TCP/IP协议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。IP协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。第二,提供不可靠的无连接的服务。第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。TCP协议的功能:差错控制可靠性、面向连接、分段(Segment)、端口号。TCP是传输控制协议,是面向连接的提供了一种
15、可靠的传输服务,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。二、TCP/IP协议进行传输数据传输的过程:应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP 也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,向TCP提供所有TCP需要的服务2。三、端口号:有的时候,一个ip地址不能完整的标识一台
16、服务器,这是因为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是端口。端口实际是一个16位长的地址,他的范围是065535之间,其中01023是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都知道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配要求通信的个客户端应用程序。在数据传输过程中,各种服务器不断的检测分配给他的端口,一边发现要求和他通信的客户端3。第三节 Socket的简介Socket简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通
17、信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。Java通过socket来完成它所有的网络底层的通讯,socket是一种通讯的通道,通过它可以将数据通过特定的端中发送及接收。Java中的socket可以分成二大类:Datagram Sockets(数据包socket)和 Stream Sockets(流socket)。Stream Socket有一个永久性的链接,可以确保数据可靠的发送到对方。但是Stream Socket所占的资源更多。Java主要通过Socket及ServerSocket来实现Stream Socket,一个用于客户端,另一个用户服务器端
18、。具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服务器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个Socket建立连接,客户端通过写Socket来通知服务器,以读Socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个Socket,通过读写和客户端通信8。客户机必须知道有关服务器的IP地址。对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供。它的静态方法主要提供了得到本机IP 和通过名字或
19、IP直接得到InetAddress的方法。上面的方法基本可以建立一条连线让两台计算机相互交流了。数据则是通过I/O流进行传输。因为底层的网络是继续数据的。除非远程调用,处理问题的核心在执行上。 所以你也必须导入Java.io这个包。Java的IO操作也不复杂。它提供了针对于字节流和Unicode的读者和写者,然后也提供了一个缓冲用于数据的读写。而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出。服务器可以不断接收客户机所写入的信息只到。客户机发送End字符串就退出程序。并且服务器也会做出Receive为回应
20、。Socket描述符是一个指向内部数据结构的指针,它指向描述符表入口。调用Socket函数时,socket执行体将建立一个Socket,实际上建立一个Socket意味着为一个Socket数据结构分配存储空间。Socket执行体为你管理描述符表。 两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。Socket数据结构中包含这五种信息。一、Socket程序的工作过程:1.建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接道。2.数据通信:利用虚拟连接通道传送数据信息进行通信。3.关闭:通信结束时,再将所建的虚拟
21、连接拆除。具体如下:1服务器serversocket2监听4.连接5读6写7关闭3客户端socket6读5写7关闭图2-1 Socket程序的工作过程二、三次握手协议:第一次握手:原主机发送一个带有本次连接的序号的请求的一个数据帧第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有一个本次连接序号和源端机连接序列号的确认。第三此握手:源端机收到含有两次初始序列号的应答后,再向目的主机发送一个带有两次连接的序列号的确认。具体过程如下: 图2-2三次握手协议第四节 Swing的简介AWT是Swing的基础。Swing的产生主要原因就是AWT不能满足图形化用户界面发展的需要。 AWT设计的初
22、衷是支持开发小应用程序的简单用户界面。例如AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚至不包括弹出式菜单或滚动窗格等基本元素。随着发展的需要,Swing出现了,Swing组件几乎都是轻量组件,与重量组件相比,没有本地的对等组件,不像重量组件要在它们自己的本地不透明窗体中绘制,轻量组件在它们的重量组件的窗口中绘制。Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级(light -weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。由于AWT组件通过与具体平台相关的对等类(Peer)实现,因此Swing比AWT组件具有
23、更强的实用性。Swing在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。Swing采用了一种MVC的设计范式,即“模型-视图-控制”(Model-View- Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。Swing外观感觉采用可插入的外观感觉(Pluggable Look and Feel,PL&F)。在AWT组件中,由于控制组件外观的对等类与具体平台相关,使得AWT组件总是只有与本机相关的外观。Swing使得程序在一个平台上运行时能够有不同的外观。用户可以选择自己习惯的外观。一、框架、监听器和事件:框架 (Frame, JFram
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 聊天室 程序设计
