毕业设计基于JAVA聊天室的设计与实现.docx
- 文档编号:8588243
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:40
- 大小:250.23KB
毕业设计基于JAVA聊天室的设计与实现.docx
《毕业设计基于JAVA聊天室的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计基于JAVA聊天室的设计与实现.docx(40页珍藏版)》请在冰豆网上搜索。
毕业设计基于JAVA聊天室的设计与实现
基于JAVA聊天室的设计与实现
BasedontheJavaChatRoomDesignandImplementation
ABSTRACT
Therapiddevelopmentofcomputernetworktechnology,sothatpeoplecanchoosetocommunicatemoreandmorethetraditionalmeansofcommunicationinthevelocityandreliabilityhavebeendifficulttomeettheneedsofthepeople,theinstantcommunicationsystemhasbecomeoneofthenewfavoritesisanindispensablepart.Instantcommunicationreferstothereleaseofinformationandinformationreceiveralmostatthesametimetotransferrequirements,asmalldelaysystemtools.SuchasthecommonlyusedQQtools,web,MSNcommunicationsystemtools.Thesystemincludesthedevelopmentofanetworkchatserverprogramandanetworkchatclientprogramintwoaspects.TheformerthroughtheSocketestablishaserver,servercanread,forwardedfromclientinformation,andcanrefreshthelistofusers.Thelatterbyestablishaconnectionwiththeserver,toclientandclientinformationexchange.Whichusesalocalareanetworkcommunicationmechanism,throughdirectThreadclassinheritancetocreatemultiplethreads.Developmentofthecomputernetworkprogrammingtothebasicknowledge,suchastheTCP/IPprotocol,client/servermode(Client/Servermode),networkprogrammingdesignmethod.Networkprogrammingintheinformationread,send,istheuseofflowtoachieveinformationexchange,whichisintroducedtoimplementasystematicanalysisofinformationflow,includingsomebasicsoftwareengineeringmethods.Throughtheanalysisofthesecases,theLANchattoolsusingEclipseasthebasicdevelopmentenvironmentandJavalanguagepreparation,firstinashortperiodoftimecanbuildupthesystemapplicationprototype,then,fortheinitialprototypesystem,revisesandtheimprovementunceasingly,atthesametime,multi-threading,taskdesign,developedastableperformance,fullyfunctionaltheserver.
Thecompleteimplementationofthefunctionofthesystem.Throughthisgraduationdesigncanbelearnedabouttheapplicationandimplementationofobject-orientedmethods,howtousetheEclipseintegrateddevelopmentenvironmenttocreateanddevelopmentprojects,thusthecompleterealizationofthefunctionofthesystem.
KEYWORDS:
朗读显示对应的拉丁字符的拼音 KEYKEJavachatroom,applicationprogram,developmentenvironment
基于Java聊天室的设计与实现
摘要
计算机网络技术的快速发展,使人们可选择的交流方式越来越多,传统的通信方式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠也是人们生活中不可或缺的一部分。
即时通信即指信息的发布者与信息的接收者几乎同时达到传送要求,延迟很小的系统工具。
如常用的QQ工具,飞信,MSN等通讯系统工具。
该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。
前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。
后者通过与服务器建立连接,来进行客户端与客户端的信息交流。
其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。
开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。
在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。
经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。
完整的实现系统的功能。
通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完整的实现整个系统的功能。
本系统结构设计合理,功能齐全,采用模块化设计、操作简单,具有良好的人机界面和灵活的系统可维护性;可以实现简单的功能如注册、登陆、查找好友、聊天等功能。
并且服务端实现配置文件设置、用户管理、日志显示等功能。
关键词:
聊天室,应用程序,开发环境
1引言
1.1即时通讯技术概述
最初接触的即时通讯(InstantMessenger,简称IM)即为聊天室。
老牌的ICQ、国内非常受大众欢迎的腾讯QQ以及微软开发的MSN,Messenger都是我们十分关注的焦点。
通过这些即时通讯工具我们可以在网上迅速的找到朋友或者工作伙伴,进行实时交流和互传信息。
经过这些年的研究发展,不少IM软件还集成了数据交换、语音以及视频聊天、网络会议、电子邮件等功能。
IM技术全称InstantMessaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与互联网上的年轻中国实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。
IM的出现和互联网有着密不可分的关系,IM完全是基于TCP/IP网络协议族来实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。
最早出现即时通讯协议是IRC(InternetRelayChat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。
随着互连网变得高度发达,即时通讯也变得远不仅仅是聊天这么简单,自从1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。
目前即时通讯、Twitter受宠电子邮件过气最具代表性的几款的IM通讯软件有MSN、GoogleTalk、Yahoo、Messenge腾讯QQ等。
即时通讯技术(IM)支持用户在线实时交谈。
如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并发送信息时让交谈双方都看到交谈的内容。
大多数常用的即时通讯发送程序都会提供各种各样的功能。
IM软件的历史并不久远,但是当时它一诞生,就立即受到许许多多的网民的喜爱和青睐,并且迅速的风靡全世界。
而在它的发展史上,以色列人所作出的贡献是不可忽略的。
在1996年7月四位以色列年轻人共同成立了Mirabilis公司,并且于同年11月推出了全世界第一个即时通讯软件ICQ,即“ISeekYou”,意为“我在找你”,简称就为ICQ了。
直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。
同时,ICQ仍然存在一些局限性。
一是英文界面,二是在使用操作上有相当的困难,这使得ICQ在国内使用的范围虽然也比较广,但始终不是特别普及和推广,大多局限于“网虫”级别的高手里。
目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。
腾讯QQ以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。
由于当时这种需要随时在网上运行的聊天工具一直受制于互联网的拨号上网,这导致QQ用户数一增加就要不断的扩充服务器,客观上来说,电信运营商对宽带投入的大幅增长导致互联网的更加普及,在某种意义上说,这是即时通讯繁荣的物质基础。
Messenger虽然出道较晚,但依托微软的强大背景,实力也不可小视。
作为WindowsXP的一部分,Messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。
它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视。
1.2目的和意义
目的:
通过Java的手段来模仿QQ,设计一个用于局域网的即时通讯工具,使其具有一般的即时通讯工具具有的功能。
如注册、登陆、查找好友、实现即时消息的发送与接收,可多人会话,并且可通过统一的消息管理器管理,服务端还需实现配置文件设置、用户管理、日志显示的功能。
并且可以完成在学校的范围搭建一个可以供老师及学生相互交流及联系的平台。
学生与学生之间不必再通过互联网或手机等方式来实现相互之间的通信,完全可以通过JavaQQ中的通信功能进行联系。
老师可以通过JavaQQ向同学们发送及时的信息如学院的通知、考试通知、成绩通告,及时掌握学生的动态,提供必要的帮助。
这就有效地解决老师与老师之间的,老师与学生之间的,学生与学生之间的通讯问题。
通过课题的设计对从而使我们对Java的开发背景有更加深刻的认识,同时可更加熟练的应用Java相关的知识,学会理论联系实践用知识去解决现实生活当中的问题。
意义:
网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使用Java的技术,如:
开发各界面(登入、注册、聊天等界面)使用Swing组件技术,实现网络的功能使用Socket/ServerSocket技术,实现数据的保存,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。
通过对该项目的设计以开发可以使自己在Java技术方面得到全面应用,使自己项目开发能力的一个很好体现。
并且对Java有更进一步的认识,充分理解和掌握Java在现实生活中的应用。
将开发出来的作品运用到实际当中,如学校,企业等其他任何需要的地方。
使人们之间的交流和沟通更加的多元化,也使信息的传递更加快捷和有效。
在设计和开发的过程中不断跟踪国内外最新的技术和开发模式,即时了解和掌握流行的即时通讯机制并且应用到实践过程中,极大的提高自己的设计和开发软件的积极性。
即时通讯的出现改变了人们的沟通方式和交友文化,大大扩展了个人生活交流的空间。
2项目开发工具和技术选择
2.1开发工具
2.1.1Java简介
Java最早大概可追溯至1991年四月份,Sun的绿色计划(GreenProject)开始着手于发展消费性电子产品(ConsumerElectronics),所使用的语言是C、C++、及Oak(为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致Java的产生。
Java是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。
Java是一种软件技术,是一种由美国Sun计算机公司(SunMicrosystems,Inc.)所研究而成的语言;是一种为Internet发展的计算机语言;是一种使网页(WebPage)产生生动活泼画面的语言;是一种使网页由静态转变为动态的一种语言;是一种语言,用以产生小应用程序(Applet(s));是一种简化的C++语言是一种安全的语言,具有阻绝计算机病毒传输的功能;是一种将安全性(Security)列为第一优先考虑的语言;是一种使用者不需花费很多时间学习的语言;是一种突破用户端机器环境和CPU结构的语言;是一种写一次,即可在任何机器上执行的语言是有史以来,第一套允使用者将应用程序(Applications)通过Internet从远端的服务器(RemoteServer)传输到本地端的机器上(LocalMachine)并执行;是一种应用程序提供者不需要知道使用者的计算机硬件(如:
Sun,Intel,或Mac等)与软件(如:
SW-UNIX,MACO/S,Windows,或NT等)环境的语言。
2.1.2MyEclipse6.0开发工具
Java的开发工具很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环境(IDE)。
它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。
Eclipse是开放源代码的项目,并可以免费下载。
支持最新的Java标准,并且缩短了开发周期。
一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。
Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。
用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。
可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。
其主要特点如下:
(1)开放的可扩展的IDE
(2)成功的底层图形界面API
(3)强大的插件加载功能
(4)可以通过导入一些CVS相关的插件来实现版本管理的便易性
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
但就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
然而幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Eclipse同时还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。
JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
2.2技术选择
2.2.1C/S结构
C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。
客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。
C/S结构的优势:
(1)应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序;
(2)数据的储存管理功能较为透明。
C/S结构的劣势:
(1)高昂的维护成本且投资大。
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理;
(2)传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。
2.2.2JavaSocket技术
本课题选择了JavaSocket技术开发网络聊天室。
什么是Socket?
Socket是一种用于表达两台机器之间连接“终端”的软件抽象。
对于一个给定的连接,在每台机器上都有一个Socket,你可以想象一个虚拟的"电缆"工作在两台机器之间,“电缆”插在两台机器的Socket上。
当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。
简单的说,一台计算机上的Socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。
当你发送数据时,TCP/IP协议栈的每一层都给你的数据里添加适当的报头。
有个好消息是Java语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流Socket”。
思考一下Socket像电话听筒一样在电话的任意一端,你和我通过一个专门的信道来进行通话和接听。
会话将一直进行下去直到我们决定挂断电话(除非我们使用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。
如果你需要在两台机器之间进行通讯而不使用高级机制像ORBS(以及CORBA,RMI,IIOP等等),Socket比较适合你。
Socket的底层机制则相当棘手。
幸运的是,Java平台给我们一些虽然简单但是相当强大的高层抽象以至于我们创建和使用Socket更加容易一些。
3需求分析
3.1项目概述
3.1.1产品描述
人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。
一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。
本聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。
因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。
该小聊天室是为许多喜爱上网聊天的朋友开发设计的。
和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。
本聊天室主要由注册界面、登录界面、聊天室界面、功能设置界面等构成。
整个设计简洁明了、实用,使用简单。
图3-1客户端结构图
图3-2服务器端结构图
3.1.2产品功能
本项目具有以下主要功能:
客户端:
(1)用户注册功能:
实现用户的登入ID注册和个人信息,并存入服务器数据库中。
(2)用户登入功能:
实现合法注册用户的登入。
(3)聊天功能:
实现用户和在线的其他用户一对一的聊天方式。
(4)发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。
服务端:
(1)可以不断的监听客户端请求
(2)显示登入客户的信息
(3)发送系统消息
3.2功能需求
3.2.1用户注册
需求描述:
用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入ID,并保存在数据库当中。
执行者:
用户
前置条件:
无
后置条件:
无
正常过程:
(1)向服务端发送注册请求
(2)服务端响应客户端,客户端弹出注册信息表单
(3)用户填写完表单后将注册数据传给服务端处理,并保存在数据库中
(4)返回客户端一个响应,显示用户注册的ID,提示注册成功。
异常过程:
(1)用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示信息,并将光标定位到出错的地方。
(2)用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户重新填写表单。
(3)服务器未启动或出现异常
3.2.2用户登入
需求描述:
用户填写登入ID和密码,经服务器验证成功后进入聊天室主界面。
执行者:
用户
前置条件:
用户成功注册或已经拥有一个合法的ID号
后置条件:
无
正常过程:
(1)向服务端请求连接,并发送登录信息。
(2)服务端处理并查询数据库中的用户信息。
(3)返回客户端一个响应,提示登录成功,弹出聊天室主界面。
(4)刷新其他在线用户的用户列表信息。
异常过程:
(5)用户填写的ID或密码与数据库中的纪录不匹配,客户端提示登录失败。
(6)客户端设置的服务器地址或端口有误。
(7)服务器未启动或出现异常。
3.2.3一对一聊天
需求描述:
用户可选择聊天室的在线用户列表中其他用户聊天。
并且对方有消息提示,双方发送的信息对于聊天室的其他用户是不可见的。
执行者:
用户
前置条件:
用户登录成功,聊天的对方在线
后置条件:
无
正常过程:
(1)客户端与服务端建立通讯
(2)客户端将用户发送的信息打包传送给服务端
(3)服务端进行数据分析,查找目的用户的ID,并将用户的信息传给目的用户
(4)目的用户收到服务器的信息后,正确的显示并保存
异常过程:
(5)客户端与服务端断开连接,客户端提示信息发送失败。
(6)客户端发送的聊天内容包含不合法的字符
3.2.4发送表情
需求描述:
用户的聊天内容可以是表情图片
执行者:
用户
前置条件:
用户可以正常聊天
后置条件:
无
正常过程:
(1)客户端与服务端建立通讯
(2)客户端将表情所表示的信息传送给服务端
(3)服务器端进行数据分析后,查找目的用户的ID,并将所处理的信息传给目的用户,目的用户端通过本地文件将信息翻译成表情并正确显示在显示窗体中。
异常过程:
(1)客户端与服务端断开连接,客户端提示服务器异常。
(2)客户端发送的表情信息不正确或本地文件不存在异常
3.2.5用户退出
需求描述:
用户在正常情况下退出聊天室
执行者:
用户
前置条件:
用户成功登录聊天室
后置条件:
无
正常过程:
(1)向服务器发送用户登出消息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 JAVA 聊天室 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)