




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计论文毕业设计论文 设计题目:设计题目: 基于 java 聊天室的设计与实现 系系 部:部: 电子信息系 学生姓名:学生姓名: 专业班级:专业班级: 学学 号:号: 指导教师:指导教师: 2012 年年 5 月月 基于网络的聊天室系统的设计开发 摘 要 信息时代的到来引发了一场知识和信息革命,计算机和现代网络技术的广泛应用 极大地促进了社会经济的发展,同时也带来了一些新兴产业的发展,比如聊天室。聊 天室已经慢慢成为人们生活的一部分,呈现出良好的势头和广阔的发展前景。 本文主要介绍了以当前流行 web 设计语言 java socket 技术语言开发的一个简单 的网络聊天室。该小聊天室重要是
2、为许多喜爱上网聊天的朋友开发设计的,希望能在 现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室 比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天,传送文件等。本聊 天室主要由登录页面、验证页面、聊天室页面、离开页面、查看聊客页面、帮助页面 等页面构成。整个设计简洁明了、实用,使用简单。 关键字:web 设计语言,聊天室,java socket 技术 abstract the information age arrival has initiated a knowledge and information revolution, widespread appli
3、cation of the computer and the modern network technology enormously promoted the social economy development, at the same time has also brought some emerging industrial development, for instance chatroom. chatroom has already become a part of peoples life slowly, presented the good tendency and the b
4、road prospects for development. a chatroom was introduced by a popular webs design language java server page-jsps language presently in this context. this is a chatroom that designed to many friend who likes chatting online. the hope can give everybody in the existing multitudinous chatroom more tha
5、n one kind of choices. compared with many large-scale networks chatrooms this small chatroom is quite to be simple, but can realize the basic function which the dotted pair is chatted more, point-to-point chats,transmission document and so on. this chatroom mainly consist with registering the page,
6、confirming the page, the chatroom page, leaving the page, the examination of chating guest page, helping page constitution and so on. entire design concise, practical and the use is simple. keywords : webs design language,chatroom,java socket 目 录 第一章第一章 绪 论 .1 1.1 聊天室系统的基本概念 .1 1.2 开发聊天室系统的意义 .1 1.3
7、 本次毕业设计所要完成的主要工作 .1 第二章 课题介绍 .2 2.1课题的目的 .2 2.2课题的意义 .2 2.3课题的主要任务 .3 第三章第三章 系统开发环境与工具的选择系统开发环境与工具的选择 .4 3.1 java 简介.4 3.1.1 java 语言 .4 3.1.2 java 架构设计 .4 3.2本课题开发环境的选择 .5 3.3本课题开发工具的选择 .6 3.4 本课题开发技术的选择 .6 第四章第四章 需求分析需求分析 .7 7 4.1 以往聊天室系统的缺陷 .7 4.2 聊天室系统作为网络通讯工具的作用 .7 4.3 现行聊天室系统的功能需求 .7 4.3.1 用户注册
8、.7 4.3.2用户登入.8 4.3.3私聊.9 4.3.4聊天记录.10 4.3.5系统消息.10 4.3.6用户退出.11 4.4质量性能需求 .11 4.4.1容错性需求.11 4.4.2稳定性需求.11 4.4.3软件设计可靠性.12 4.4.4安全性.12 4.4.5扩展性.12 4.4.6易用性.12 第五章第五章 聊天室系统的总体设计聊天室系统的总体设计 .13 5.1 聊天室结构分析 .13 5.2 网络聊天室的设计与实现 .14 5.2.1 综合设计.16 5.3 运行分析 .27 第六章第六章 系统测试系统测试 .28 6.1测试举例 .28 6.1.1测试程序登录界面.2
9、8 6.1.2测试程序主界面.28 6.1.3测试程序退出.28 6.2测试项目 .28 6.2.1单元测试.29 6.2.2组合测试.29 6.2.3确认测试.29 6.2.4系统测试.29 6.2.5用户验收测试.29 6.3测试方法 .30 第七章第七章 存在问题存在问题 .31 7.1 软件存在的问题 .31 7.2 美观界面 .31 第八章第八章 结结 论论 .32 致致 谢谢 .33 参考文献参考文献 .34 第一章第一章 绪绪 论论 1.11.1 聊天室系统的基本概念聊天室系统的基本概念 聊天室系统是一个通过国际互联信息网络进行多人通讯的一个系统。该系统在一 定网络通讯及高级语言
10、程序设计和 jsp 应用程序设计的基础上,利用计算机通讯原理, 形成一个聊天室平台,使得用户在进入这个聊天室系统平台的同时,可以通过网络在 线与距离遥远的其他一位或多位用户进行信息交流。 聊天室主要分为 webchat、bbschat 两种。bbschat 是基于 telnet 的 tcp 协议,是 bbs 的附设功能,需要客户端 telnet 程序。webchat 则采用浏览器方式,实际上是一 个多人共同使用的 cgi 程序。其基本原理是把每个用户的发言通过浏览器传给系统, 再由系统收集处理后分发给特定用户。 webchat 一般采用 server push 或 client pull 技术
11、。两种技术的区别在于使用 不同的方式将数据分发给用户,server push 是由服务器将数据以多重 mime 编码,发 送给(push)使用者端,目前较少网站使用这种方式。client pull 则是用户从服务器 接收(pull)所要的数据。 1.21.2 开发聊天室系统的意义开发聊天室系统的意义 在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也有非常多, 比如电报、电话、电子邮件等通讯手段,但是这些或者不方便或者有局限性或者有费 用的问题,比如电话就是属于费用比较高的一种方式,而且一般情况下不能进行多人 会谈,只能 2 方通话,那么一个需要几个人一起讨论的会议就不能举行,一般
12、情况下 都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力 费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段,需要一定时间才 能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题, 我们不需要聚集在同一地点,各自在不同的地点就可以在聊天室中发言,大家互相讨 论。而且好的聊天室还有各种表情符号等可以加强我们的表达。而且费用低廉,信息 交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。 1.31.3 本次毕业设计所要完成的主要工作本次毕业设计所要完成的主要工作 通过所学知识,根据网络聊天室系统的发展动态,结合自己个人的兴
13、趣爱好,建 立一个功能丰富,操作简便快捷的通用网络聊天室系统。 本文的主要安排了对聊天室技术的一些相关介绍,比如 java socket 技术。接着 是关于对聊天室系统的分析和设计,通过对聊天室的结构的分析来设计聊天室系统, 并根据自己的兴趣和想法来丰富聊天室的功能。 第二章第二章 课题介绍课题介绍 2.12.1课题的目的课题的目的 聊天室虽然其功能简单,但是在其设计与开发过程中,能够充分学习和使用 java2 的技术,如:开发各界面(登入、注册、群聊等界面)使用到 swing 技术;随着模仿 qq,实现简单的 qq 功能:注册、登陆、查找好友、聊天功能。 实现配置文件设置、用户管理、日志显示
14、的功能。实现群聊功能用到基于 cliet/server 的面向连接编程技术。使用多线程进行多个客户端和服务端的连接。使 用文件方式保存用户信息,实现数据的保存与读取使用到数据库连接和操作技术。使 用对象的方式在服务端和客户端之间传递信息。 老师可以通过 java qq 向同学们发送及时的信息如学院的通知、考试通知、成绩 通告,及时掌握学生的动态,提供必要的帮助。这就有效地解决老师与老师之间的, 老师与学生之间的,学生与学生之间的通讯问题。 2.22.2课题的意义课题的意义 课题设计的主要任务是运用已知的知识理论联系实践模仿 qq,实现简单的 qq 功能 如注册、登陆、查找好友、聊天功能。服务端
15、还能实现配置文件设置、用户管理、日 志显示的功能。从而对 java 的开发背景有更进一步的认识,充分掌握 java 在现实生 活中的应用。深入调查腾讯 qq 的各种功能,分析腾讯 qq 的功能,运用相关的 java 知 识对腾讯 qq 进行模仿。从而设计出 java 版的 qq。 要认真分析设计出的 java 版的 qq 会存在怎样的问题。怎样可以以有效的解决这 一问题。提出有关设计的难点重点,完成对课题的全面系统的研究。 将设计和规划与现实教育教学工作相结合,使得此系统真实意义上实现对新教育 教学工作的一次有益尝试。认真完成毕业设计论文以及开题报告答辩,中期答辩和终 期答辩。 一个网络聊天室
16、的运行,首先是要有一个完整稳定的服务器端,并且拥有多个客 服端。 客服端要具有实现用户注册和用户登入,在登入成功后,要显示出公聊界面,实 现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线 和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一 的私聊功能。 在服务器端可以实现不断的监听客户的连接,并且根据客户端发送过来的不同信 息,如注册信息、登入信息、公聊信息、私聊信息、退出信息等,服务器端要作出不 同的响应,并且要实现数据库的操作,如根据用户注册的信息保存在数据库中,根据 登入时发送来的用户名和密码检测是否合法用户等。 2.32.3课题的主要任
17、务课题的主要任务 主要涉及图形用户界面的开发、布局和输入/输出流数据的控制,并且要通过 socket 技术实现网络功能,整个程序采用 swing 图形界面,要求熟练掌握 java2 图形 用户界面的事件处理及部分 swing 组件的使用。在代码的编写上要充分体现 java 面向 对象开发思想和多态性,提高代码的重用性和高效性,要深入理解接口的作用和内部 对象等特性等。课题设计的主要任务是运用已知的知识理论联系实践模仿 qq,实现简 单的 qq 功能如注册、登陆、查找好友、聊天功能。服务端还能实现配置文件设置、用 户管理、日志显示的功能。从而对 java 的开发背景有更进一步的认识,充分掌握 j
18、ava 在现实生活中的应用。深入调查腾讯 qq 的各种功能,分析腾讯 qq 的功能,运用相关 的 java 知识对腾讯 qq 进行模仿。从而设计出 java 版的 qq。要认真分析设计出的 java 版的 qq 会存在怎样的问题。 怎样可以以有效的解决这一问题。提出有关设计的难点重点,完成对课题的全面 系统的研究。将设计和规划与现实教育教学工作相结合,使得此系统真实意义上实现 对新教育教学工作的一次有益尝试。认真完成毕业设计论文以及开题报告答辩,中期 答辩和终期答辩。 第三章第三章 系统开发环境与工具的选择系统开发环境与工具的选择 3.13.1 javajava 简介简介 .1
19、 javajava 语言语言 java 是由 sun microsystems 公司于 1995 年 5 月推出的 java 程序设计语言和 java 平台的总称。用 java 实现的 hot java 浏览器(支持 java applet)显示了 java 跨平台、动态的 web、internet 计算等一系列的魅力。从此 java 被广泛接受并推动了 web 的迅速发展。 java 语言的语法与 c 语言和 c+语言很接近,使得大多数程序员很容易学习和使 用。另一方面,java 丢弃了 c+很少使用的、很难理解的、令人迷惑的那些特性,如 操作符重载、多继承、自动强制类型转换。而且,java
20、 语言不使用指针,并提供了自 动的废料收集,使得程序员不必为内存管理而担忧。java 语言是一个面向对象的、提 供类和接口以及继承的原语,为了简单起见,只支持类之间的单继承,但支持接口之 间的多继承,并支持类与接口之间的实现机制。java 语言支持 internet 应用的开发, 在基本的 java 应用编程接口中有一个网络应用编程接口,它提供了用于网络应用编程 的类库,包括 url、urlconnection、socket(实现客户端的套接字)、 serversocket(实现服务器端的套接字)等。java 的强制型机制、异常处理、废料的 自动收集等都是 java 程序健壮性的重要保证。ja
21、va 通常被用在网络环境中,为此, java 提供了一个安全机制以防恶意代码的攻击。 java 语言的优良特性使得 java 应用具有无比的健壮性和可靠性,这也减少了应用 系统的维护费用。java 对对象技术的全面支持和 java 平台内嵌的 api 能缩短应用系统 的开发时间并降低成本。java 编译一次,处处可运行的特性使得它能够提供一个随处 可用的开放结构和在多平台之间传递信息的低成本方式。丰富的类库为 java 提供了大 量的类以满足网络化、多线程、面向对象系统的需要。同时 java 程序可以获取网络上 节点的图像、声音、html 文档及文本资源。 .2 javajav
22、a 架构设计架构设计 从技术角度来说,软件架构随着技术的革新不断地更新其内容,软件架构建立于 当前技术和一些基本原则的基础之上。架构的一些基本原则: 分层化原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了 阶级一样,软件有了层次结构。 模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件 分工。 接口分离原则:随着软件模块化的不断深入改进,面向接口编程而不是面向实现 编程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。 依赖倒置原则:随着软件结构的进一步发展,层与层之间、模块与模块之间的依赖 逐渐加深,而层、模块的动态可插拔要求不端增大
23、。 当前最典型的三层次架构就架构在以上几项原则的基础之上,用数据库作存储层、 用面向对象来实现业务层、用 web 作为用户接口层。这种三层次架构同样应用于此次 系统的设计。 3.23.2本课题开发环境的选择本课题开发环境的选择 在进行开发之前,首先决定的第一个问题就是,该使用什么开发环境来编写该系统? 以目前常用的开发语言来讲有 c/c+、.net 技术,java、 visual basic 几种。还有 eclipse,、borland jbuilder 等,这些并不是程序语言,而是程序语言在建构程序时 的“集成开发工具”,不过它们在开发设计的过程中也占有相当重要的角色,因为选 用正确的集成开
24、发工具,可以加速程序设计的进行、测试与排错,因而对整体进度具 有决定性的影响。 基于以下几点,选择 java 语言开发技术。 1)就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能 使用的是 windows linux。java 语言具有平台无关性,可以不需要任何修改就可以运 行在支持 java 的任何计算机上。 2)java 的 swing 组件开发技术可以开发丰富的图形界面,并且 swing api 类提 供了丰富的外部接口和方法,可以方便实现系统功能。 3)就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数) 库的支持,使得利用 java 开发各种应用程
25、序,可以说是易如反掌。此外,在程序除错、 修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容 易。 4)java 支持内在的多线程运行,提供分布式的并发机制,运行效率高。 5)异常处理,为了使 java 程式更稳定、更安全,java 引入了异常处理机制。能 够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造 成执行中断或是死机。通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程, 也使得程序的设计更为严谨。 6)高性能,java 可以在运行时直接将目标代码翻译成机器指令。sun 用直接解释 器一秒钟内可调用 300,000 个过程。翻译目标代
26、码的速度与 c/c+的性能没什么区别。 7)网络功能,java 可以说是借助因特网而重获新生的,自然具备编写网络功能的 程序。不论是一般因特网局域网的程序,如 socket、email、基于 web 服务器的 servlet、jsp 程序,甚至连分布式网络程序,如 corba、rmi 等的支持也是非常丰富的, 使用起来也很方便。 8)源回收处理,garbage collection 是由 jvm 对内存实行动态管理的。程序需要 多少内存、哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐危险的操 作全部交由 jvm 去管理。让我们能够更专心地编写程序,而不需要担心内存的问题。 内存的统一
27、管理,对于跨平台也有相当大的帮助。 3.33.3本课题开发工具的选择本课题开发工具的选择 java 的开发工具很多,而且各有优缺点,eclipse 是一个开放可扩展的集成开发 环境(ide)。它不仅可以用于 java 的开发,通过开发插件,它可以构建其他的开发工 具。eclipse 是开放源代码的项目,并可以免费下载。支持最新的 java 标准,并且缩 短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是 eclipse 一直是广大程序员最喜爱的 java 开发工具的原因之一。 eclipse 的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调 试器等。用户可以在
28、集成开发环境中创建工程和打开工程,建立、打开和编辑文件, 并可以编译、运行和调试应用程序。可以说在 eclipse 集成开发环境中开发 java 程序, 快速而且高效。其主要特点如下: 1) 开放的可扩展的 ide 2) 成功的底层图形界面 api 3) 强大的插件加载功能 4) 可以通过导入一些 cvs 相关的插件来实现版本管理的便易性 3.43.4 本课题开发技术的选择本课题开发技术的选择 本课题选择了 java socket 技术开发网络聊天室。什么是 socket? socket 是一种 用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器 上都有一个 socke
29、t,你可以想象一个虚拟的电缆工作在两台机器之间,“电缆”插 在两台机器的 socket 上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都 是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。简单的说,一台计 算机上的 socket 同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两 台机器之间发送数据。当你发送数据 tcp/ip 协议栈的每一层都给你的数据里添加适当 的报头。有个好消息是 java 语言隐藏了所有这些细节,这也是为什么他们有时被叫做 “流 socket”。思考一下 socket 像电话听筒一样在电话的任意一端你和我通过一 个专门的信道来进行通话和接听。会
30、话将一直进行下去直到我们决定挂断电话(除非 我们使用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。如果 你需要在两台机器之间进行通讯而不使用高级机制像 orbs(以及 corba, rmi, iiop 等 等),socket 比较适合你。socket 的底层机制则相当棘手。 第四章第四章 需求分析需求分析 4.14.1 以往聊天室系统的缺陷以往聊天室系统的缺陷 通过对以往聊天室的研究及分析,发现聊天室系统存在以下问题:1)以往聊天室 只能看到用户 id 而不能看到用户的个人形象,包括个人头像和个人服装 show。2)不能 轻易分辨出自己谈话和别人的谈话。3)用户聊天只有单纯的文
31、字表达,不能通过丰富 的表情和图片来增添聊天的乐趣。4)聊天背景只有单纯的白色,没有任何可供选择的 背景颜色和画面,使整个聊天环境显的呆板。 4.24.2 聊天室系统作为网络通讯工具的作用聊天室系统作为网络通讯工具的作用 聊天室是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自己的聊天 对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。用户可 以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。在聊天室里网民可 选择自己的聊天对象,进行对话交流。既可以一对一,又可以一对多,还可以形成小 组进行多对多讨论,方便网民在线私聊与群聊。是现行网络最流行、最被广泛应用的 通
32、讯工具。 4.34.3 现行聊天室系统的功能需求现行聊天室系统的功能需求 聊天室系统虽然满足了人们的在线通讯,但是随着聊天室被广泛应用,人们对于 聊天的要求也越来越高,单纯的聊天已不能满足人们的需要,人们更需要多功能的聊 天室系统,来丰富聊天环境。 聊天室系统功能具体需求包括: 1) 一个聊天室里所有的人都可以互相密谈。 2) 可以通过用鼠标点击页面上出现的或者人名列表的人名来选择人名。 3) 可以使用颜色来轻易分辨出别人的谈话和自己的谈话。 4) 可以察看进入房间以后的所有聊天纪录。 5) 可以通过贴图在您聊天中加入卡通图片,使聊天内容丰富多采,充满活力。 6) 可以根据您的自己喜好来设置背
33、景颜色和画面,使您更加舒适的聊天。 .1 用户注册用户注册 需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用 户所注册的登入 id,并保存在数据库当中。 执行者:用户 前置条件:无 后置条件:无 正常过程: 1) 向服务端发送注册请求 2) 服务端响应客户端,客户端弹出注册信息表单 3) 用户填写完表单后将注册数据传给服务端处理,并保存在数据库中 4) 返回客户端一个响应,显示用户注册的 id,提示注册成功 异常过程(可选): 用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示 信息,并将光标定位到出错的地方。 用户注册的项在数据库中发生
34、冲突,客户端提示注册不成功并提示用户 重新填写表单。 服务器未启动或出现异常 通过注册模块实现用户的在线注册,所填写的注册项目有:用户名、密码、密码 确认、性别、年龄、e-mail。 用户 注册界面 正确填写注册项 提交 确认信息 注册成功 用户 进入登入界面 输入用户名, 密码 提交 确认 信息 进入系统 图 4-1注册活动图 图 4-2登录活动图 .2用户登入用户登入 需求描述:用户填写登入 id 和密码,经服务器验证成功后进入聊天室主界面。 执行者:用户 前置条件:用户成功注册或已经拥有一个合法的 id 号 后置条件:无 正常过程: 1) 向服务端请求连接,并发送登录信息
35、。 2) 服务端处理并查询数据库中的用户信息 3) 返回客户端一个响应,提示登录成功,弹出聊天室主界面。 4) 刷新其他在线用户的用户列表信息 异常过程(可选): 用户填写的 id 或密码与数据库中的纪录不匹配,客户端 提示登录失败。 客户端设置的服务器地址或端口有误。 服务器未启动或出现异常。 .3私聊私聊 需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。并且对方有消息提示, 双方发送的信息对于聊天室的其他用户是不可见的。 执行者:用户 前置条件:用户登录成功,私聊的对方在线 后置条件:无 正常过程: 1) 客户端与服务端建立通讯。 2) 客户端将用户发送的信息打包传
36、送给服务端。 3) 服务端进行数据分析,查找目的用户的 id,并将用户的信息传给目的用户。 4) 目的用户收到服务器的信息后,正确的显示并保存。 异常过程(可选): 客户端与服务端断开连接,客户端提示信息发送失败。客户端发送的私聊内容包 含不合法的字符特殊需求(可选):不能与不在线的用户进行私聊。 图 4-3私聊流程图 .4聊天记录聊天记录 需求描述:用户可以查询聊天的历史纪录,包括公聊记录和私聊记录。 执行者:用户 前置条件:用户正确登入后 后置条件:无 正常过程: 1) 发送、接收信息的同时将信息保存在本地文件中 2) 信息发送框中可以查询历史聊天记录 3) 从本地文件中读
37、取信息,并显示在记录显示匡中 异常过程(可选): 服务端异常导致客户端退出,客户端提示服务器异常。 客户端读取信息时目标文件不存在。 .5系统消息系统消息 需求描述:在聊天室的每一个用户都能接收服务端发送的的信息提示消息 执行者:服务端 前置条件:服务端正常运行 后置条件:无 正常过程:服务器向所有在线用户发送消息 用户 选择其他用户 输入信息 确认 发送信息 客户端接收到消息,进行消息处理,并正确显示 异常过程(可选): 1) 服务端异常,重启服务器 2) 出现网络异常,发送系统消息失败 3) 用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发 送系统消息
38、4) 用于发送公告,提示等系统消息,可以方便管理员和客户的交流和管理 图 4-4系统消息活动图 .6用户退出用户退出 需求描述:用户在正常情况下退出聊天室 执行者:用户 前置条件:用户成功登录聊天室 后置条件:无 正常过程: 1) 向服务器发送用户登出消息 2) 服务器进行用户退出的数据处理 用户 服务器 显示出系统消息 确 认 发送系统消息 3) 服务器向聊天室其他用户发送登出消息 4) 刷新其他在线用户的用户列表信息 4.4质量性能需求 .1容错性需求容错性需求 当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之间信息传 输不会因为数据封装问题
39、出现丢失或乱码。因用户的误操作产生的异常应做出及时的 处理或信息提示。 .2稳定性需求稳定性需求 软件应正常完成所有功能需求。服务器端应长时间运行无故障,故障修复时间一般 控制在 3 小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作系 统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄露。 要求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象。 .3软件设计可靠性软件设计可靠性 要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可靠 性和稳定性得到提高,并且便于系统维护,和新模块的添加。 4.4.
40、44.4.4安全性安全性 安全性是防止网络方面的攻击。 .5扩展性扩展性 系统建成后,应在现行系统上不需要做大的改动或不影响整个系统结构,就可以增 加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。 .6易用性易用性 系统操作的界面必须简洁、操作方便易用、设计合理。 第五章第五章 聊天室系统的总体设计聊天室系统的总体设计 5.15.1 聊天室结构分析聊天室结构分析 本聊天室采用的是当前流行的 browser/server(浏览器/服务器)结构,b/s 结构是 随着 internet 技术的兴起,对 c/s 结构的一种变化或者改进的结构。在这种结
41、构下, 用户界面完全通过 www 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑 在服务器端实现,形成所谓 3-tier 结构。b/s 结构利用不断成熟和普及的浏览器技术 实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的 软件系统构造技术。 本聊天室主要由注册界面、登录界面、聊天室界面、私聊界面、查看聊天内容界 面、功能设置界面等构成。整个设计简洁明了、实用,使用简单。 图 5-1 客户端结构图 图 5-2 服务器结构图 客户端 注册登录主界面聊天 服务器端 系统服务系统配置用户管理在线用户日志管理 近年来由于 internet/intranet 技术的发展和
42、普及,各种各样的信息都在 www(world wide web)上发布,人们之间的信息沟通比以往变得更为高效快捷,web 技术的应用已成为一种必然,但传统的客户机/服务器模式的数据库设计与 web 的相关 技术互相独立,两者无法进行集成,我们知道,采用客户机/服务器模式的数据库系统 无论在设计开发还是在应用方面都具有一定的局限性,比如在应用中,操作人员必须 学会本系统的操作方法、规程等,不具有普及性、易懂性,等等,基于这种情况,微 软提出 web computing 的概念,将它应用于数据库技术中。 浏览器/服务器(brower/server)模式的数据库体系是利用 web 服务器 web 结
43、构 的浏览器/服务器模式体系,(如图) 浏览器web 服务 器 http 图 5-3 bs 体系图 工作原理:在前端采用 ie、netscape 等的浏览器将用户提交的操作信息向 web 服 务器发出 http 请求,web 服务器通过一些中间组件访问后台数据库,并将操作结果以 html 页面的形式返回给前端浏览器。 5.25.2 网络聊天室的设计与实现网络聊天室的设计与实现 首先介绍网络聊天室的功能,该聊天室的功能包括如下: 1) 登录 2) 验证进入聊天室 3) 聊天室主页面 4) 帮助 5) 查看聊客 6) 离开 整个聊天室由以下几个页面组成: 1) 登录聊天室 2) 用户名的验证工作
44、3) 对用户消息各个变量的初始化 4) 发送信息 5) 显示信息 6) 用户列表 7) 离开聊天室 8) 聊天室主页面 9) 帮助页面 聊天室执行流程图: 否 登 录 是 聊天室主页面 图 5-4 验 证 查看聊客帮助页面 离开页面 5.2.1 综合设计 1) 用于构建注册的主界面 图 5-5注册的主界面 public void actionperformed(actionevent arg0) try socket=new socket(serverip,serverport); out=new printwriter(new outputstreamwriter(socket.getout
45、putstream(),true); reader = new bufferedreader(new inputstreamreader(socket.getinputstream(); out.println(denglu); if(reader.readline().equals(ok) string name=jtf.gettext(); out.println(name); char password=jfp.getpassword(); out.println(password); out.println(end); 聊天室界面及其功能 : 1) 登录界面: 对聊天室定义各个变量和建
46、立矢量,以及建立哈希表来保存用户的信息,并初始 化个变量的值。 该聊天室登入界面本身具有一定的安全保护措施,能够对用户的身份进行验证, 从而保证数据库中的数据不受破坏。所以,当用户准备运行系统时,首先要进入用户 登录模块。其模块流程图: 图 5-6 用户登入图 该流程图为用户登入界面的流程图。 流程说明: 1) 当用户在登入界面输入用户名和密码,点击提交按纽,判断输入的用户名是否 为空,若是,则显示错误提示给用户,并要求用户重新输入,重复步骤 1,若不为空则 到步骤 2。 2) 判断用户输入的密码是否为空,若是,则显示错误提示给用户,并要求用户重 新输入,转到步骤 1,若不为空则到步骤 3。
47、3) 进行表单提交,由 in.jsp 界面转到 login.jsp 界面进行表单数据处理。 4) 对用户输入的用户名和密码在数据库中进行查询,看是否在数据库的用户登表 中存在该用户,若不存在,则提示用户重新输入,并显示相关链接,若存在,则用户 验证通过,显示进入主界面和重新申请 id 两个链接,供用户选择。 图 5-7登入时序图 在设置好 ip 和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登 入,通过验证后登入聊天室主界面,输入错误返回提示。 信 信 信 信 信 信 信 信 3: 信 信 信 信 信 信 1: 信 信 信 信 信 2: 信 信 信 信 4: 信 信 信 信 信 信
48、 5: 信 信 信 信 7: 6: 信 信 信 信 图 5-8登入成功 text=textfield1.gettext(); text1=textfield2.gettext(); char thestr=textfield3.getpassword(); text2=new string(thestr).trim(); char thestr1=textfield4.getpassword(); text3=new string(thestr1).trim(); if(!text2.equals(text3) label11.settext(密码不一致!); else label11.set
49、text(); text4=textarea.gettext(); out.println(zhuce); string bb=null; try bb = reader.readline(); catch (ioexception e1) e1.printstacktrace(); 图 5-9 登陆成功界面 private void getfrendinfo() boolean a=true; try if(reader.readline().equals(ok) id = reader.readline().trim(); id2=integer.parseint(id); myname
50、= reader.readline(); string iconn = reader.readline(); integer.parseint(iconn); jb1.settext(myname+在线); jb1.setforeground(color.red); username = new arraylist(); /放置所有用户id的数组 userno = new arraylist();/放置所有用户昵称的数组 while(a) id=reader.readline(); if(!id.equals(end) id1=integer.parseint(id); userno.add(
51、id1); friendname = reader.readline(); username .add(friendname); else a=false; reader.close(); out.close(); socket.close(); catch (ioexception e) e.printstacktrace(); 用户输入正确的账号和密码后点击登录,在此页面也可选择状态选项的在线、隐 身、离开和忙碌以及自动的登录。服务器响应这一请求后会将用户输入的信息和已存 用户信息进行匹配,在匹配成功后,用户方可 图5-10 聊天界面 if(reader.readline().equals
52、(ok) ip11 = reader.readline().trim(); system.out.println(获取dfgfhgghip+ip11); ip=inetaddress.getbyname(ip11); string port1=reader.readline(); port=integer.parseint(port1); friendname=reader.readline(); if(reader.readline().equals(ipover) reader.close(); out.close(); if(!map.containskey(ip) datagramso
53、cket socket=new datagramsocket(); dilog=new dilog(socket,ip,myname, friendname); dilog.setvisible(true); map.put(ip, dilog); 2) 聊天界面及其功能 用户登录成功后,会在主界面显示状态、用户昵称、在线用户以及在线用户的基 本信息。选择在线用户列表的任一好友,出现聊天界面。 图 5-11聊天界面 if(reader.readline().equals(ok) id = reader.readline().trim(); id2=integer.parseint(id); m
54、yname = reader.readline(); string iconn = reader.readline(); integer.parseint(iconn); jb1.settext(myname+在线); jb1.setforeground(color.red); username = new arraylist(); /放置所有用户id的数组 userno = new arraylist();/放置所有用户昵称的数组 while(a) id=reader.readline(); if(!id.equals(end) id1=integer.parseint(id); usern
55、o.add(id1); friendname = reader.readline(); username .add(friendname); else a=false; 图 5-12聊天界面 3) 发送系统消息 服务器端收到用户上线或下线时发送给其他在线用户消息提示,并可以根据需要, 主动发送消息给客户,实现服务器端的管理。 图 5-13 开启服务器 iterator iterator = usermap.iterator(); while (iterator.hasnext() / 从集合中装载用户信息 user user = iterator.next(); out.close(); so
56、cket.close(); else if(str1.equals(getip) out.println(ok); id1=reader.readline(); system.out.println(获取的用户名aaaid是:+id1); id=integer.parseint(id1); out.println(dao.getip(id); system.out.println(获取的用户名aaaip是:+dao.getip(id); out.println(dao.getport(id); system.out.println(获取的用户名aaaport是: +dao.getport(id
57、); out.println(dao.getname(id); out.println(ipover); 在开启服务器成功后,发送系统消息。 下面通过一个具体模块来说明一下此聊天界面的一些功能,如聊天信息发送处理 模块,通过该模块能很清楚的了解该界面上的一些功能,具体的流程图如下: send.jsp send_1.jsp 用户提交表单 聊天记录多 于 30 条? 清除 vector 数组 中的聊天记录 获取用户的相关设置, 保存到 vector 中 聊天内容有 html 代码? 保存错误提示到相 应的 vector 数组 中 show.jsp 读取 vector 中 的值 显示给终 端用户 图
58、 5-14 聊天信息发送处理流程 流程说明: 1) 当用户在聊天界面上输入聊天信息,并点说话这个按纽后,send_1.jsp页面提 交当前表单到send.jsp页面进行处理,send.jsp这个页面接受到send_1.jsp页面提交 的信息后对记录聊天记录的vector聊天数组进行大小判断,如果大于30条聊天记录则 清除原有聊天记录并保存一条提示信息到该数组中并跳到步骤2,如果小于30条则直接 到步骤2。 2) 获取send_1.jsp页面关于颜色、对象、悄悄话、表情等相关设置值并保存到相 应的vector数组,而后对聊天数组中的聊天信息进行检查,如果某条聊天记录含有 tml标记则将该条记录删
59、除并保存错误提示信息到该聊天数组,并跳到步骤3。否则 直接到步骤3。 3) 获取各vector的值,而后按规则显示在show.jsp上。 4) 用户退出 在用户希望中断与服务器的连接时,向服务器发送中断的请求,服务器响应客户 端的需求,会自动断开。在登录期间,若用户希望取消登录,只需点击界面的取消登 录,服务器得到相应后即可关闭当前界面。 5-15 退出登录界面 if(reader.readline().equals(ok) id = reader.readline().trim(); id2=integer.parseint(id); myname = reader.readline();
60、string iconn = reader.readline(); integer.parseint(iconn); jb1.settext(myname+在线); jb1.setforeground(color.red); username = new arraylist(); userno = new arraylist();/while(a) id=reader.readline(); if(!id.equals(end) id1=integer.parseint(id); userno.add(id1); friendname = reader.readline(); username
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型对图书馆的试题及答案
- 强化职业道德教育的工作计划
- 员工绩效评估与激励制度
- 多元文化教育在小班中的实践计划
- 幼儿园小班的幼小衔接工作计划
- 2025年地震电磁辐射观测仪项目发展计划
- 学校社团工作计划关注学生沟通交流技巧
- 2025年图书策划与发行项目发展计划
- 2024年语文常用修辞试题及答案
- 物流运输行业月度个人工作计划
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测生物试卷(含官方答案)
- 2025年统编版高三政治二轮复习:当代国际政治与经济 练习
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测语文试卷(含官方答案)
- 2025年国家会展中心上海有限责任公司招聘笔试参考题库含答案解析
- 《卓越领导力》课件
- 2024国家电投集团中国电力招聘(22人)笔试参考题库附带答案详解
- 《餐厅案例》课件
- 《大数据时代对会计行业产生的影响探究》10000字【论文】
- (完整word版)苏教版初一下册英语单词
- 床旁血液滤过
- 某化工厂拆除施工方案(完整资料)
评论
0/150
提交评论