JAVA聊天室毕业论文设计1.doc_第1页
JAVA聊天室毕业论文设计1.doc_第2页
JAVA聊天室毕业论文设计1.doc_第3页
JAVA聊天室毕业论文设计1.doc_第4页
JAVA聊天室毕业论文设计1.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

江苏省徐州机电工程高等职业学校毕业设计姓 名: 杨雪芳 学 号: 01000076 系 部: 信息工程系 专 业: 软件技术 设计题目: 聊天室(java) 指导教师: siddhant、韩伟 职 称: 2012年07月 摘 要随着internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。传统的信息交流工具,不能满足人们即时获取信息的要求。因此,网上聊天便成为人们的首选,而一个好的聊天工具是:操作简单、方便、人性化,节省系统资源。为了方便与人即时联系及数据汇报,特构建此聊天系统。本论文通过java的socket实现了一个基于局域网和网络的聊天室程序的开发。本论文详细介绍其设计和实现过程。关键词:聊天室;java;客户机/服务器;socket;abstractwith the development of internet technology, peoples daily lives can not be separated from the network. society, people living and working more and more dependent on the development of digital technology, more and more digital, networked, electronic, virtualization. e-commerce with the development of increasingly close to peoples lives. the course of development of the internet and the current application status and development trend, we can fully believe that network technology will dramatically change the way we live and work, and even social values may also occur a change.the rapid development of network, the internet has become the quick access, publish, and an important channel for transmitting information, it play an important role in a persons political, economic, and other aspects of life. the traditional information-sharing tools can not meet the requirements of people instant access to information. therefore, online chats will become the first choice of the people, and a good chat tools are: simple operation, convenient, user-friendly, saving system resources. in order to facilitate immediate contact and data reporting, special build this chat system.in this thesis, through the java socket development of a local area network and network-based chat program. this paper details the design and implementation process.keywords: chat rooms; the java; client / server;the socket;目 录首页中文摘要英文摘要第一章 绪论.1.1 聊天室的发展1.2 即时通讯的9大应用第二章 实现聊天室的相关技术及环境2.1 java的概述2.2 java的特点2.3 tcp/ip协议常识2.4 socket的简介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聊天室的发展聊天室作为即时通讯的一种,即时通讯(instant messenger,简称im)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的icq,还是国内用户量第一的腾讯qq,以及微软的msn messenger都是大众关注的焦点,它们能让你迅速的在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少im软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。im软件的历史并不久远,但是它一诞生,就立即收到网民的喜爱,并风靡全球。在它的发展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在1996年7月成立的mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件icq,取意为“我在找你”“i seek you”,简称icq了。知道现在,icq已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。目前,国内最为流行的即时通讯软件是oicq(简称qq)。它以良好的中文界面和不断增强的功能形成了一定的qq网络文化。messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。最为windows xp的一部分,messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能了,着实吸引了众多的眼球的注视,此外还有许多有特点的im软件。第2章 系统开发环境与工具的选择2.1本课题开发环境的选择在进行开发之前,首先决定的第一个问题就是,选择编程语言开发环境和开发工具,我选用了java作为开发环境来编写该系统,具体选择原因如下:选择java语言开发技术:1、就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能使用的是windows linux。java语言具有跨平台性。2、java的swing 组件开发技术可以开发丰富的图形界面,并且swing api类提供了丰富的外部接口和方法,可以方便实现系统功能。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本课题开发技术的选择本课题选择了java socket技术开发网络聊天室。什么是socket? socket是一种用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上都有一个socket,你可以想象一个虚拟的电缆工作在两台机器之间,“电缆”插在两台机器的socket上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。 第3章 需求分析3.1项目概述3.1.1产品描述:我这个聊天室是和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,群聊,私聊等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由登录界面、聊天室界面构成。整个设计简洁明了、实用,使用简单。客户端登录界面用户登入公聊私聊聊天界面好友列表端口号图3-1 客户端结构图服务器监听请求接收消息发送消息图3-2 服务器结构图3.1.2产品功能本项目具有以下主要功能客户端: 用户登入功能。 群聊功能,实现用户和在线的所有用户聊天方式。 私聊功能,实现用户和在线的其他用户一对一的聊天方式。 获取好友列表功能,把上线的新用户添加到好友列表里。服务端: 可以不断的监听客户端请求 发送消息3.2功能需求3.2.1用户登入需求描述:用户填写用户名,进入聊天室主界面。执行者:用户正常过程: 向服务端请求连接,并发送登录信息; 服务端处理用户信息; 返回客户端一个响应,弹出聊天室主界面; 更新在线用户的用户列表信息。3.2.2公聊需求描述:用户在聊天室文本区域输入发言内容,聊天室中的其他在线用户可以正常接受并正确显示(包括上线提醒和下线提醒)。执行者:登入用户正常过程: 客户端用户登入成功后,启动客户端功能线程; 客户端将用户发送的信息打包传送给服务端; 服务端进行数据分析后,并将用户的信息进行正确的处理; 传给处在聊天室的所有在线其他用户并正常显示。3.2.3私聊需求描述:用户可选择聊天室的在线用户列表中任意一个用户聊天,双方发送的信息对于聊天室的其他用户是不可见的。执行者:私聊用户正常过程: 客户端与服务端建立通讯。 客户端将用户发送的信息打包传送给服务端。 服务端进行数据分析,查找被选中的用户,并将信息传给选中的用户。 选中的用户收到服务器的信息后,正确的显示。特殊需求:私聊得选中用户,不能与自己进行私聊。3.2.4好友列表需求描述:登录的每一个用户都显示在好友列表里。执行者:客户端正常过程: 把登陆的用户显示在好友列表里。 服务器通知所有用户新用户上线了。 客户端接收到消息,进行消息处理,并正确显示。3.2.5用户退出需求描述:用户在正常情况下退出聊天室。执行者:用户正常过程: 向服务器发送用户退出消息。 服务器进行用户退出的数据处理。 服务器向聊天室其他用户发送用户下线消息。 刷新其他在线用户的用户列表信息。第4章 概要设计4.1目的该阶段目的在于明确网络聊天室系统的数据结构和软件总体结构,各个软件模块的功能说明,数据结构的细节,系统运行配置与应用方式以及使用的关键技术。4.2运行环境运行环境见下表。名 称操作系统类型推荐操作系统版本推荐硬件(cpu/ram/hd)数据库客户端windows平台windows 2000以上p4 1.7g/256m/40g服务器windows平台windows 2000以上p4 3.6g/8g/120g表4.14.3体系结构概述本系统采用c/s的结构设计模式,客户端接收用户的发送的信息到服务器,服务器通过处理转发到另一些客户端。客户端采用图形用户界面,方便与用户交互。服务器端用控制台的方式方便控制操作。 客户端分为用户登录、群聊、私聊、好友列表。用户登录封装在用户登录的界面中,群聊、私聊、用户列表模块封装在聊天的主界面中。服务器端实现消息接收、消息转发等功能。4.4功能设计4.4.1用户登录用户进到登入界面,填写登入用户名实现用户的登入用户进入登入界面输入用户名提交进入聊天界面图4-1登录图4.4.2公聊用户登入成功后进入聊天界面,通过输入聊天内容实现和其他的用户聊天,文本编辑框输入聊天信息用户聊天界面发送消息给所有用户的群聊窗口并可以显示其他用户发送的公聊信息。 点击群聊按钮 图4-2群聊图4.4.3私聊用户通过选择在线用户列表的其他用户,实现和选中的用户进行私聊方式进行交流,其他用户不可见。选择其他用户输入聊天信息发送信息文本编辑框用户聊天界面点击私聊按钮 图4-3私聊图4.4.4好友列表用户登陆成功后,经过服务器处理后,通知所有在线的用户有新用户上线了并把新用户显示在好友列表里。用户服务器发送通知消息显示在所有客户端的好友列表里图4-4好友列表图4.4.5 用户退出在线的用户点击退出按钮,向服务器发送请求,服务器接受请求并处理,并通知所有在线用户该用户退出了,在所有好友列表里移除该用户,退出聊天页面。聊天界面退出服务器接受请求并处理发送有人下线消息退出聊天界面图4-5用户退出图第5章 详细设计本系统采用c/s设计模式,系统分为客户端和服务器端,客户端包括登入模块,聊天模块。服务器端服务器启动实现模块。5.1 登入l 功能描述在该登陆页面下,我把端口写死了,只需输入用户名就可以直接登入聊天室主界面。登陆界面窗口如下:5.2 群聊l 功能描述用户在文本编辑区域输入信息,单击群聊按钮直接把信息发送到群聊显示的区域。并且按照发送来的信息中包含好的显示方式正确显示出信息。群聊界面窗口如图所示:5.3 私聊l 功能描述用户在文本编辑区域输入信息,选中要私聊的对象,单击私聊按钮直接把信息发送到该用户私聊显示的区域。并且按照发送来的信息中包含好的显示方式正确显示出信息。私聊对象不能选择自己,如果选择自己,会弹出“不能和自己私聊”的提示框,还有不能不选择私聊对象,如果不选择的话,会弹出“请选择私聊对象”的提示框。 私聊界面窗口如图所示:5.4好友列表l 功能描述 服务器端收到用户上线或下线时发送给它的请求,刷新好友列表。5.5用户退出l 功能描述 在聊天页面,单击关闭按钮,该用户就退出了并通知其他在线用户该用户退出了。如图所示:5.6功能逻辑实现l 逻辑功能描述 本系统采用数据对象流的形式发送和接受信息。客户端连接服务器成功后就启动一个客户端线程和服务器通信。客户端发送的信息分为:登入消息、群聊消息、私聊消息、用户上下线消息提醒等。服务器端启动一个线程不断的监听客户的请求,当接受到客户请求时就启动一个和该客户端通信的线程。第6章系统测试为了确保本系统能够正常运行,需要在发布之后做一次较全面的测试。现将具体操作及过程举例说明如下:6.1测试举例6.1.1测试程序登录界面 打开程序后,首先出现的是登录页面,输入用户名,点击登录按钮,。6.1.2测试程序主界面进入主界面后,主页面会显示群聊信息显示区、私聊信息显示区、文本编辑显示区、在线用户列表区、功能按钮区。用户可以在用户列表中看到目前在线的其他用户,并在群聊信息显示区内看到用户上下线通知和群聊信息,私聊信息显示区内看到私聊的信息。用户可以在文本编辑显示区内输入自己的发送内容,并可以通过单击用户列表名中的用户,进行私聊,发送的信息其他用户不可以见。6.1.3测试程序退出当单击退出按钮或窗体的关闭时,用户将发送退出信息,离开聊天室,其他用户可以得到系统提示用户下线并刷新用户列表。6.2测试项目由于实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是软件开发过程中为保证软件质量必须进行的工作。6.2.1单元测试单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。6.2.2系统测试系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。结 论首先,我选择本课题缘由是刚刚接触java项目,主要也想试一试,更近一步的提高自己的能力。并且也可以对网络开发产生兴趣,对具有网络功能的项目更有感觉。大学三年的学习期间,通过学校开设的基础课程,扎实系统的学习了软件的基础知识,并对面向对象编程语言有了进一步的理解,对软件专业逐步的建立起自己的知识体系框架。通过这次的学年论文,使自己在java编程语言的使用方面得到一个全面锻炼自己的机会,在这个模块的界面开发方面,充分的学习和利用了java swing界面开发技术,使自己在界面应用和布局方面得到更多的实践,应用socket技术实现网络连接功能,对网络的实现和通信方面有了进一步的理解,并通过多线程方面的应用,使客户端和服务端可以实现多任务功能,在整个开发过程当中应用软件工程的开发步骤,使自己专业理论知识的到进一步的巩固,项目开发经验有不少的收获。通过完成这次学年论文的项目,使自己在项目实际开发方面有了进

温馨提示

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

评论

0/150

提交评论