江苏省徐州机电工程高等职业学校毕业设计姓名:杨雪芳学号:01000076系部:信息工程系专业:软件技术设计题目:聊天室(Java)指导教师:SIDDHANT、韩伟职称:2012年07月摘要随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。传统的信息交流工具,不能满足人们即时获取信息的要求。因此,网上聊天便成为人们的首选,而一个好的聊天工具是:操作简单、方便、人性化,节省系统资源。为了方便与人即时联系及数据汇报,特构建此聊天系统。本论文通过Java的Socket实现了一个基于局域网和网络的聊天室程序的开发。本论文详细介绍其设计和实现过程。关键词:聊天室;Java;客户机/服务器;Socket;AbstractWiththedevelopmentofInternettechnology,people'sdailylivescannotbeseparatedfromthenetwork.Society,peoplelivingandworkingmoreandmoredependentonthedevelopmentofdigitaltechnology,moreandmoredigital,networked,electronic,virtualization.E-commerceWiththedevelopmentofincreasinglyclosetopeople'slives.ThecourseofdevelopmentoftheInternetandthecurrentapplicationstatusanddevelopmenttrend,wecanfullybelievethatnetworktechnologywilldramaticallychangethewayweliveandwork,andevensocialvaluesmayalsooccurachange.Therapiddevelopmentofnetwork,theInternethasbecomethequickaccess,publish,andanimportantchannelfortransmittinginformation,itplayanimportantroleinaperson'spolitical,economic,andotheraspectsoflife.Thetraditionalinformation-sharingtoolscannotmeettherequirementsofpeopleinstantaccesstoinformation.Therefore,onlinechatswillbecomethefirstchoiceofthepeople,andagoodchattoolsare:simpleoperation,convenient,user-friendly,savingsystemresources.Inordertofacilitateimmediatecontactanddatareporting,specialbuildthischatsystem.Inthisthesis,throughtheJavaSocketdevelopmentofalocalareanetworkandnetwork-basedchatprogram.Thispaperdetailsthedesignandimplementationprocess.Keywords:chatrooms;theJava;Client/Server;theSocket;目录首页…………………………………………………………………………………中文摘要……………………………………………………………………………英文摘要……………………………………………………………………………第一章绪论………………………………………………………………………..1.1聊天室的发展………………………………………………………………………1.2即时通讯的9大应用………………………………………………………………第二章实现聊天室的相关技术及环境……………………………………………2.1Java的概述………………………………………………………………2.2Java的特点………………………………………………………………2.3TCP/IP协议常识…………………………………………………………2.4SOCKET的简介……………………………………………………………2.5系统开发工具……………………………………………………………第三章网络聊天系统的系统设计…………………………………………………3.1项目概述………………………………………………………………3.2功能需求………………………………………………………………3.3聊天室系统的系统设计………………………………………………3.3.1聊天系统工作原理……………………………………………3.3.2系统实现原理…………………………………………………第四章聊天室系统的实现及测试…………………………………………………4.1总结致谢参考文献附录部分源程序代码第1章绪论网络技术是计算机领域中发展最为迅速的技术之一,它在政治、经济、生活等各个方面发挥着十分重要的作用。随着计算机网络的普及和推广,将会有越来越多的人利用网上资源,享受不断发展和完善的网络服务,以此来提高工作效率和水平。随着我国经济的发展和网络的普及,网络技术也越来越多地被应用于日常工作之中。在程序设计领域,面向对象的编程技术正在逐步代替面向过程的程序设计技术,成为计算机应用设计开发的主流,尤其在网络技术开发中,面向对象的Java语言编程和相关的Java技术正在以前所未有的速度发展。网上购物、网上银行、远程教学、网络聊天、网络游戏等都开始使用Java技术。而且Java使平台无惯性的思想成为现实,独立的Java程序可以被编译为与平台无关的字节码,这种字节码可以运行在任何拥有Java解释器的机器上。真正降低了企业成品和程序员的负担。随着信息科学的进步与互联网络的发展,虽然通过网络的聊天软件很多,但针对于内部系统的、局域网内的聊天和公司内部的上下级沟通的聊天通讯软件却很少。所以开发一个此类型的即时通讯系统就变得非常有意义了。1.1聊天室的发展聊天室作为即时通讯的一种,即时通讯(InstantMessenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSNMessenger都是大众关注的焦点,它们能让你迅速的在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。IM软件的历史并不久远,但是它一诞生,就立即收到网民的喜爱,并风靡全球。在它的发展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“ISeekYou”,简称ICQ了。知道现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。最为WindowsXP的一部分,Messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能了,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。第2章系统开发环境与工具的选择2.1本课题开发环境的选择在进行开发之前,首先决定的第一个问题就是,选择编程语言开发环境和开发工具,我选用了JAVA作为开发环境来编写该系统,具体选择原因如下:选择JAVA语言开发技术:1、就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能使用的是WindowsLinux。JAVA语言具有跨平台性。2、JAVA的Swing组件开发技术可以开发丰富的图形界面,并且SwingAPI类提供了丰富的外部接口和方法,可以方便实现系统功能。3、就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数)库的支持,使得利用Java开发各种应用程序,可以说是易如反掌。此外,在程序除错、修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容易。4、Java支持内在的多线程运行,提供分布式的并发机制,运行效率高。5、异常处理,为了使Java程式更稳定、更安全,Java引入了异常处理机制。能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。6、高性能,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。2.2本课题开发工具的选择Java的开发工具很多,而且各有优缺点,在这里我选用了Eclipse作为开发工具,Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:1.开放的可扩展的IDE2.成功的底层图形界面API3.强大的插件加载功能2.3本课题开发技术的选择本课题选择了javaSocket技术开发网络聊天室。什么是socket?socket是一种用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上都有一个socket,你可以想象一个虚拟的电缆工作在两台机器之间,“电缆”插在两台机器的socket上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。第3章需求分析3.1项目概述3.1.1产品描述:我这个聊天室是和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,群聊,私聊等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由登录界面、聊天室界面构成。整个设计简洁明了、实用,使用简单。图3-1客户端结构图图3-2服务器结构图3.1.2产品功能本项目具有以下主要功能客户端:服务器监听请求接收消息发送消息客户端登录界面用户登入公聊私聊聊天界面好友列表端口号用户登入功能。群聊功能,实现用户和在线的所有用户聊天方式。私聊功能,实现用户和在线的其他用户一对一的聊天方式。获取好友列表功能,把上线的新用户添加到好友列表里。服务端:可以不断的监听客户端请求发送消息3.2功能需求3.2.1用户登入需求描述:用户填写用户名,进入