基于java的聊天室—客户端.doc
《基于java的聊天室—客户端.doc》由会员分享,可在线阅读,更多相关《基于java的聊天室—客户端.doc(25页珍藏版)》请在咨信网上搜索。
1、河北农业大学本科毕业论文(设计)题 目:基于JAVA的聊天室客户端 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。这个项目是用Java技术制作的,其中Java是一种程序设计语言,它具有简单的、面向对象、分布式、健壮性、安全性、可移植性等特点,并且提供了多线程的功能,使得在一个程序里可同时执行多个小任务,开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,
2、是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完整的实现整个系统的功能。该系统主要包括了服务器端和客户端界面使用两部分,其中服务器端用来接收新用户的注册和注册用户的登录验证以及进
3、行服务器信息和用户信息的管理,其中用到了Socket套接字建立服务器,服务器能读取、转发客户端发来的信息。客户端通过注册界面让新用户进行注册;通过登录界面使用已注册的用户名和密码登录到聊天服务器;用户通过登录验证后即可进行在线聊天。多用户的即时聊天功能必须使用Thread类来建立多线程。本聊天系统采用Eclipse为基本的开发环境,用java语言进行程序的编写的。关键词:客户端/服务器,多线程,聊天,socketABSTRACTWith the development of the Internet, the chat tool as a communication tool, has bee
4、n popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ,MSN - Messager are much more prevalent.This project is with Java technology produced of, which Java is a programming language, it has simple of, and-oriented object, and distributed, and
5、 robust sexual, and security, and portability, features, and provides has multithreaded of features, makes in a program in can while implementation multiple small task, development in the using has computer network programming of basic theory knowledge, as TCP/IP agreement, and client/server end mod
6、e (Client/Server mode), and network programming of design method,. Read, send to the information in network programming, is to use streams to achieve the exchange of information, which he introduced to the realization of a system of information flow analysis, contains some basic software engineering
7、 methods. After analysis of the situation, using Eclipse as a development environment and LAN chat tool written in the Java language, first of all, you can build systems application prototype in a short time, and then, to keep the initial prototype system fixes and improvements, at the same time, mu
8、ltithreaded, multitasking design ideas, developed a stable performance, full-featured server. Complete system functionality. This can learn how to apply for graduation design and realization of object-oriented methods, how to use the Eclipse integrated development environment to create and develop p
9、rojects, so as to complete the entire system functionality.The system includes both server-side and client-side interface uses two main parts, which server to use for new user registrations and registered user login authentication, and server information and user information management, which was us
10、ed to establish Server Socket , the server can read the message, forwarded to the client. Registered by the client interfaces to register new users through login with a registered username and password to log on to the chat server; after user login authentication for online chat. Multi-user chat Thr
11、ead class must be used to create threads. This chat system uses Eclipse as a basic development environment, with programs written in the Java language.Key words: Client / server, multiple threads, chat, socket目录1绪论11.1课题背景11.2课题研究的目的和意义11.3国内外概况21.4课题的主要研究工作22. 系统开发环境与实用技术22.1 本课题开发环境的选择22.2本课题开发工具的
12、选择32.3 Socket技术42.4 多线程技术43. 系统的分析与设计53.1系统的总体需求53.2客户端的功能63.3流程设计73.4分析Socket在客户端的开发流程83.5系统的设计方案83.6 性能需求分析104. 系统的实现104.1系统的模块分析104.2主要引入的包104.3主要代码114.4界面设计145. 总结17参考文献18致谢181 绪论随着信息科学的进步与互联网络的发展,虽然通过网络的聊天软件很多,但针对于内部系统的、局域网内的聊天和公司内部的上下级沟通的聊天通讯软件却很少。所以开发一个此类型的即时通讯系统就变得非常有意义了。而在技术选择上Java技术自然成为实现此
13、系统的首选。本文所介绍的网络聊天系统是基于JAVA编程语言开发设计的,其主要特性是能动态、实时的完成消息的传递,且具有高效的交互性,能更有效的处理客户请求,其运行时所需环境及工作流程和各模块的工作原理将在本文依次介绍,并且文中提供了部分程序源代码。1.1课题背景在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也非常多,比如电报、电话、电子邮件等通讯手段,但是这些或者不方便或者有局限性或者有费用的问题,比如电话就是属于费用比较高的一种方式,电子邮件则不是一种及时联系的手段,需要一定时间才能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题,大家可以各自在不同的地
14、点就可以在聊天室中发言,大家互相讨论,而且好的聊天室还有各种表情符号等可以加强我们的表达,并且费用低廉,信息交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。1.2课题研究的目的和意义近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是网络聊天室开始流行起来,越来越多的用户通过网络聊天畅谈自己的心扉。随着越来越多的应用人群,开发一个网络聊天室是极其有意义的。本课题主要介绍的是基于JAVA的网络聊天室的开发设计,其主要功能是能够动态、实时的完成信息的传递,并且具有高效的交互性和有效的处理用户请求,易于维护和更新。为了更
15、好的充实人们的生活,我特做此系统更满足人们在日常生活的需要和需求,也为了满足人们在信息流通方面的方便,使得人们更能分享互联网上的资源,使得的网络的意义更能充分的体现。交流是系统的关键也是目的,它能让你在简单的对话中了解复杂的社会,多彩的世界,使得人与人之间的距离彻底拉近,就像是面对面的交谈,彼此之间没有界限,没有差别,只有心与心的共振。1.3国内外概况目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN以及跨平台Gaim等。本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。腾讯无疑是国内即时通讯市场的霸主,自从99年
16、进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。腾讯的成功与其对QQ的不断创新和完善是分不开的。参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。1.4课题的主要研究工作本系统是一个典型的聊天系统。该程序分两大部分来编写,服务器端和客户端。服务器端用来响应客户端所发出的请求,并把接受到客户端的响应分别作出响应的处理。客户端用来接收用户的请求,然后
17、做出相应的操作。其中网络传输的实现和多线程技术是此聊天系统的核心部分,而Java提供的API函数中针对网络编程的Socket类正是针对网络编程的,Java语言是一种支持多线程的语言,多线程在服务器端主要是要满足支持多个用户的同时登陆,在客户端主要满足一对多的同时聊天。2. 系统开发环境与实用技术2.1 本课题开发环境的选择在进行开发之前,首先决定的第一个问题就是该使用什么开发环境来编写,以目前常用的开发语言来讲有C/C+、NET技术、JAVA、VB几种。还有Eclipse、JBuilder等,这些并不是语言,而是程序在构建程序时的“集成开发工具”,不过它们在开发设计的过程中也占有相应重要的角色
18、,因为选用正确的集成开发工具,可以加速程序设计的进行、测试与排错,因而对整体进度具有决定性的影响。1、就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能使用的是Windows和Linux。JAVA语言具有平台无关性,可以不需要任何修改就可以运行在支持JAVA的任何计算机上。2、JAVA的Swing组件开发技术可以开发丰富的图形界面,并且Swing API类提供了丰富的外部接口和方法,可以方便实现系统功能。3、就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法库的支持,使得利用JAVA开发各种应用程序,可以说是易如反掌。此外,在程序除错、修改、升级和增加新功能等方面,
19、因其面向对象的特性,使得这些维护也变得非常容易。4、JAVA支持内在的多线程运行,提供分布式的并发机制,运行效率高。5、异常处理,为了使Java程序更稳定、更安全,Java引入了异常处理机制。能够在程序中产生异常情况的地方,执行相应的处理,不至于因突发或意外的错误造成执行中断或是死机。通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。6、高性能,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C+的性能没什么区别。7、网络功能,Java可以说是借助因特网而重获新生的,自然具备编写网络
20、功能的程序。不论是一般因特网/局域网的程序,如Socket、Email、基于Web服务器的Servlet、JSP程序,甚至连分布式网络程序,如CORBA、RMI等的支持也是非常丰富的,使用起来也很方便。8、源回收处理,Garbage Collection是由JVM对内存实行动态管理的。程序需要多少内存、哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐且危险的操作全部交由JVM去管理。让我们能够更专心地编写程序,而不需要担心内存的问题。内存的统一管理,对于跨平台也有相当大的帮助。2.2本课题开发工具的选择Java的开发工具有很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环
21、境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。Eclipse的可视化集成开发环境包括文本编辑、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开功能,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:开放的可扩展IDE成功的底层图形界面
22、API强大的插件加载功能可以通过导入一些CVS相关的插件来实现版本管理的便易性2.3 Socket技术l Socket概述 套接字(Socket)技术用于实现网络上客户端程序和服务器端程序之间的连接,即网络上两个以双工方式通信的进程之间的连接端点称为套接字。套接字相对URL而言是在较低层次上进行通信。套接字是TCP/IP中的基本概念,它的作用类似于日常使用的插座,主要用来实现将TCP/IP包发送到指定的IP地址。通过TCP/IP Socket可以实现可靠、双向、一致、点对点、基于流的主机和Internet之间的连接。使用Socket可以用来连接Java的I/O系统到其他程序,这些程序可以在本地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 聊天室 客户端
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。