毕业设计(论文)-基于JAVA聊天室的设计与实现.doc

上传人:来看看 文档编号:3283097 上传时间:2019-08-07 格式:DOC 页数:55 大小:547.52KB
返回 下载 相关 举报
毕业设计(论文)-基于JAVA聊天室的设计与实现.doc_第1页
第1页 / 共55页
毕业设计(论文)-基于JAVA聊天室的设计与实现.doc_第2页
第2页 / 共55页
毕业设计(论文)-基于JAVA聊天室的设计与实现.doc_第3页
第3页 / 共55页
毕业设计(论文)-基于JAVA聊天室的设计与实现.doc_第4页
第4页 / 共55页
毕业设计(论文)-基于JAVA聊天室的设计与实现.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《毕业设计(论文)-基于JAVA聊天室的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于JAVA聊天室的设计与实现.doc(55页珍藏版)》请在三一文库上搜索。

1、T 论文分类号: TP 学校代码: 13681 毕业设计说明书毕业设计说明书(论文论文) 题目:题目: 基于基于JAVAJAVA聊天室的设计与实现聊天室的设计与实现 学生姓名:学生姓名: 学学 号:号: 系系 部:部: 专业班级:专业班级: 指导教师:指导教师: II 二 一一 年 七 月 I Based on the Java Chat Room Design and Implementation ABSTRACT The rapid development of computer network technology, so that people can choose to commun

2、icate more and more the traditional means of communication in the velocity and reliability have been difficult to meet the needs of the people, the instant communication system has become one of the new favorites is an indispensable part. Instant communication refers to the release of information an

3、d information receiver almost at the same time to transfer requirements, a small delay system tools. Such as the commonly used QQ tools, web, MSN communication system tools.The system includes the development of a network chat server program and a network chat client program in two aspects. The form

4、er through the Socket establish a server, server can read, forwarded from client information, and can refresh the list of users. The latter by establish a connection with the server, to client and client information exchange. Which uses a local area network communication mechanism, through direct Th

5、read class inheritance to create multiple threads. Development of the computer network programming to the basic knowledge, such as the TCP / IP protocol, client / server mode ( Client / Server mode), network programming design method. Network programming in the information read, send, is the use of

6、flow to achieve information exchange, which is introduced to implement a systematic analysis of information flow, including some basic software engineering methods. Through the analysis of these cases, the LAN chat tools using Eclipse as the basic development environment and Java language preparatio

7、n, first in a short period of time can build up the system application prototype, then, for the initial prototype system, revises and the improvement unceasingly, at the same time, multi-threading, task design, developed a stable performance, fully functional the server. The complete implementation

8、of the function of the system. Through this graduation design can be learned about the application and implementation of object-oriented methods, how to use the Eclipse integrated development environment to create and development projects, thus the complete realization of the function of the system.

9、 KEY WORDS:Java chat room ,application program ,development environment II 基于 Java 聊天室的设计与实现 摘 要 计算机网络技术的快速发展,使人们可选择的交流方式越来越多,传统的通信方 式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠也 是人们生活中不可或缺的一部分。即时通信即指信息的发布者与信息的接收者几乎同 时达到传送要求,延迟很小的系统工具。如常用的QQ 工具,飞信,MSN 等通讯 系统工具。 该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。 前者通过 Sock

10、et 套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新 用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用 到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程。开发中利用了计 算机网络编程的基本理论知识,如 TCP/IP 协议、客户端/服务器端模式(Client/Server 模式) 、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现 信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工 程的方法。经过分析这些情况,该局域网聊天工具采用 Eclipse 为基本开发环境和 Java 语言进行编写,首先

11、可在短时间内建立系统应用原型,然后,对初始原型系统进行不 断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面 的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向 对象的各种方法,如何使用 Eclipse 集成开发环境来创建和开发项目,从而完整的实现 整个系统的功能。 本系统结构设计合理,功能齐全,采用模块化设计、操作简单,具有良好的人机界 面和灵活的系统可维护性;可以实现简单的功能如注册、登陆、查找好友、聊天等功 能。并且服务端实现配置文件设置、用户管理、日志显示等功能。 关键词:聊天室,应用程序,开发环境 III 目 录 1 引 言1 1.1

12、即时通讯技术概述1 1.2 目的和意义2 2 项目开发工具和技术选择3 2.1 开发工具3 2.1.1Java 简介 3 2.1.2 MyEclipse6.0 开发工具.3 2.2 技术选择4 2.2.1 C/S 结构.4 2.2.2 Java Socket 技术4 3 需求分析6 3.1 项目概述6 3.1.1 产品描述6 3.1.2 产品功能7 3.2 功能需求7 3.2.1 用户注册7 3.2.2 用户登入8 3.2.3 一对一聊天8 3.2.4 发送表情9 3.2.5 用户退出9 3.3 质量性能需求9 4 概要设计11 4.1 系统的代码结构11 4.2 主程序类的设计(MainWi

13、n 类).11 4.3 多线程的设计11 4.4 服务器端的设计 (Server 类) .12 4.5 消息通信的设计12 5 系统的实现14 5.1 主程序类的实现14 5.2 多线程的实现14 5.3 服务器连接的实现15 IV 5.4 消息通信的实现15 6 详细设计17 6.1 客户端注册17 6.1.1 功能描述17 6.1.2 综合设计17 6.2 登入19 6.2.1 功能描述19 6.2.2 综合设计20 6.3 聊天22 6.3.1 功能描述23 6.3.2 综合设计23 6.4 发送系统消息24 6.4.1 功能描述24 6.4.2 综合设计24 6.5 功能逻辑实现24

14、6.5.1 逻辑功能描述24 6.5.2 综合设计25 7 系统测试26 7.1 测试举例26 7.1.1 测试程序登录界面26 7.1.2 测试程序主界面26 7.1.3 测试程序退出26 7.2 测试项目26 7.2.1 单元测试27 7.2.2 组合测试27 7.2.3 确认测试27 7.2.4 系统测试27 7.2.5 用户验收测试28 结 论.29 致 谢.30 参考文献.31 毕业设计说明书(论文)缩写稿.31 The Abbreviation Version of the Thesis of Undergraduates39 基于 JAVA 聊天室的设计与开发1 1 引 言 1.

15、1 即时通讯技术概述 最初接触的即时通讯(Instant Messenger,简称 IM)即为聊天室。老牌的 ICQ、国 内非常受大众欢迎的腾讯 QQ 以及微软开发的 MSN, Messenger 都是我们十分关注的焦 点。通过这些即时通讯工具我们可以在网上迅速的找到朋友或者工作伙伴,进行实时 交流和互传信息。经过这些年的研究发展,不少 IM 软件还集成了数据交换、语音以及 视频聊天、网络会议、电子邮件等功能。 IM 技术全称 Instant Messaging,中文翻译“即时通讯” ,它是一种使人们能在网上 识别在线用户并与互联网上的年轻中国实时交换消息的技术,是电子邮件发明以来迅 速崛起的

16、在线通讯方式。 IM 的出现和互联网有着密不可分的关系,IM 完全是基于 TCP/IP 网络协议族来实 现,而 TCP/IP 协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是 IRC(Internet Relay Chat) ,但是可惜的是它仅能单纯的使用文字、符号的方式通过互 联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不仅仅是聊天这 么简单,自从 1996 年第一个 IM 产品 ICQ 发明后,IM 的技术和功能也开始基本成型, 语音、视频、文件共享、短信发送等高级信息交换功能都可以在 IM 工具上实现,于是 功能强大的 IM 软件便足以搭建一个完整的通信交流

17、平台。目前即时通讯、Twitter 受 宠电子邮件过气最具代表性的几款的 IM 通讯软件有 MSN、Google Talk、Yahoo、Messenge 腾讯 QQ 等。 即时通讯技术(IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打 开一个小窗口,以便让用户及其朋友在其中输入信息并发送信息时让交谈双方都看到 交谈的内容。大多数常用的即时通讯发送程序都会提供各种各样的功能。 IM 软件的历史并不久远,但是当时它一诞生,就立即受到许许多多的网民的喜爱 和青睐,并且迅速的风靡全世界。而在它的发展史上,以色列人所作出的贡献是不可 忽略的。在 1996 年 7 月四位以色列年轻人共同成立了

18、Mirabilis 公司,并且于同年 11 月推出了全世界第一个即时通讯软件 ICQ,即“I Seek You” ,意为“我在找你” ,简称 就为 ICQ 了。直到现在,ICQ 已经推出了它的 2002a 版本,在全球即时通讯市场上占 有非常重要的地位。同时,ICQ 仍然存在一些局限性。一是英文界面,二是在使用操 作上有相当的困难,这使得 ICQ 在国内使用的范围虽然也比较广,但始终不是特别普 及和推广,大多局限于“网虫”级别的高手里。 目前,国内最为流行的即时通讯软件是 OICQ(简称 QQ) 。腾讯 QQ 以良好的中 1 引言2 文界面和不断增强的功能形成了一定的 QQ 网络文化。由于当时

19、这种需要随时在网上 运行的聊天工具一直受制于互联网的拨号上网,这导致 QQ 用户数一增加就要不断的 扩充服务器,客观上来说,电信运营商对宽带投入的大幅增长导致互联网的更加普及, 在某种意义上说,这是即时通讯繁荣的物质基础。 Messenger 虽然出道较晚,但依托微软的强大背景,实力也不可小视。作为 Windows XP 的一部分,Messenger 整合了操作系统的许多功能,如多种形式的聊天选 择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新 的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视。 1.2 目的和意义 目的: 通过 Java 的手段来模

20、仿 QQ,设计一个用于局域网的即时通讯工具,使其具有一 般的即时通讯工具具有的功能。如注册、登陆、查找好友、实现即时消息的发送与接 收,可多人会话, 并且可通过统一的消息管理器管理 ,服务端还需实现配置文件 设置、用户管理、日志显示的功能。并且可以完成在学校的范围搭建一个可以供老师 及学生相互交流及联系的平台。学生与学生之间不必再通过互联网或手机等方式来实 现相互之间的通信,完全可以通过 Java QQ 中的通信功能进行联系。老师可以通过 Java QQ 向同学们发送及时的信息如学院的通知、考试通知、成绩通告,及时掌握学生 的动态,提供必要的帮助。这就有效地解决老师与老师之间的,老师与学生之间

21、的, 学生与学生之间的通讯问题。 通过课题的设计对从而使我们对 Java 的开发背景有更加深刻的认识,同时可更加 熟练的应用 Java 相关的知识,学会理论联系实践用知识去解决现实生活当中的问题。 意义: 网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是 在其开发技术和过程中,能够充分学习和使用 Java 的技术,如:开发各界面(登入、 注册、聊天等界面)使用 Swing 组件技术,实现网络的功能使用 Socket/Server Socket 技术,实现数据的保存,并且在开发过程当中,能充分的使用和体会面向对象技术的 原理和方法。 通过对该项目的设计以开发可以使自己在 J

22、ava 技术方面得到全面应用,使自己项 目开发能力的一个很好体现。并且对 Java 有更进一步的认识,充分理解和掌握 Java 在 现实生活中的应用。将开发出来的作品运用到实际当中,如学校,企业等其他任何需 要的地方。使人们之间的交流和沟通更加的多元化,也使信息的传递更加快捷和有效。 在设计和开发的过程中不断跟踪国内外最新的技术和开发模式,即时了解和掌握流行 的即时通讯机制并且应用到实践过程中,极大的提高自己的设计和开发软件的积极性。 即时通讯的出现改变了人们的沟通方式和交友文化,大大扩展了个人生活交流的空间。 基于 JAVA 聊天室的设计与开发3 2 项目开发工具和技术选择4 2 项目开发工

23、具和技术选择 2.1 开发工具 2.1.1 Java 简介 Java 最早大概可追溯至 1991 年四月份,Sun 的绿色计划(Green Project)开始着手 于发展消费性电子产品(Consumer Electronics),所使用的语言是 C、C+、及 Oak (为 Java 语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到 当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致 Java 的产生。Java 是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无 关的、多线程的、动态的语言。Java 是一种软件技术,是一种由美国 Sun

24、计算机公司 (Sun Microsystems, Inc.)所研究而成的语言;是一种为 Internet 发展的计算机语言; 是一种使网页(Web Page)产生生动活泼画面的语言;是一种使网页由静态转变为动态 的一种语言;是一种语言,用以产生小应用程序(Applet(s);是一种简化的 C+语言 是一种安全的语言,具有阻绝计算机病毒传输的功能;是一种将安全性(Security)列为 第一优先考虑的语言;是一种使用者不需花费很多时间学习的语言;是一种突破用户 端机器环境和 CPU 结构的语言;是一种写一次,即可在任何机器上执行的语言是有史 以来,第一套允使用者将应用程序(Application

25、s)通过 Internet 从远端的服务器(Remote Server)传输到本地端的机器上(Local Machine)并执行;是一种应用程序提供者不需要 知道使用者的计算机硬件(如:Sun, Intel, 或 Mac 等)与软件(如:SW- UNIX, MAC O/S, Windows, 或 NT 等)环境的语言。 2.1.2 MyEclipse6.0 开发工具 Java 的开发工具很多,而且各有优缺点,Eclipse 是一个开放可扩展的集成开发环 境(IDE)。它不仅可以用于 Java 的开发,通过开发插件,它可以构建其他的开发工具。 Eclipse 是开放源代码的项目,并可以免费下载。

26、支持最新的 Java 标准,并且缩短了开 发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是 Eclipse 一直是 广大程序员最喜爱的 Java 开发工具的原因之一。 Eclipse 的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调 试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件, 并可以编译、运行和调试应用程序。可以说在 Eclipse 集成开发环境中开发 Java 程序, 快速而且高效。其主要特点如下: (1)开放的可扩展的 IDE 基于 JAVA 聊天室的设计与开发5 (2)成功的底层图形界面 API (3)强大的插件加载功能 (4

27、)可以通过导入一些 CVS 相关的插件来实现版本管理的便易性 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。但就其本身而言,它 只是一个框架和一组服务,用于通过插件组件构建开发环境。然而幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。 Eclipse 同时还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件 主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝 集成的工具。专注于为高度集成的

28、工具开发提供一个全功能的、具有商业品质的工业 平台。它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具 体包括四个部分组成Eclipse Platform、JDT、CDT 和 PDE。JDT 支持 Java 开发、 CDT 支持 C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基 础。Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分 辨一个工具功能在哪里结束,而另一个工具功能在哪里开始

29、。 2.2 技术选择 2.2.1 C/S 结构 C/S 结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机/服务器 网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需 要的网络资源,而服务器为客户机提供网络必须的资源。客户机不是毫无运算能力的 输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计 算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运 算量。 C/S 结构的优势:(1)应用服务器运行数据负荷较轻。最简单的 C/S 体系结构的数 据库应用由两部分组成,即客户应用程序和数据库服务器程序;(2)数据的储存管

30、理功 能较为透明。 C/S 结构的劣势:(1)高昂的维护成本且投资大。首先,采用 C/S 架构,要选择适 当的数据库平台来实现数据库数据的真正“统一” ,使分布于两地的数据同步完全交由 数据库系统去管理;(2)传统的 C/S 结构的软件需要针对不同的操作系统系统开发不同 版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。 2.2.2 Java Socket 技术 本课题选择了 Java Socket 技术开发网络聊天室。什么是 Socket? Socket 是一种用 2 项目开发工具和技术选择6 于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上

31、都有一个 Socket,你可以想象一个虚拟的“电缆“工作在两台机器之间, “电缆”插在两 台机器的 Socket 上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未 知的,抽象的所有目的就是为了让我们不必了解更多的细节。简单的说,一台计算机 上的 Socket 同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机 器之间发送数据。当你发送数据时,TCP/IP 协议栈的每一层都给你的数据里添加适当 的报头。有个好消息是 Java 语言隐藏了所有这些细节,这也是为什么他们有时被叫做 “流 Socket” 。思考一下 Socket 像电话听筒一样在电话的任意一端,你和我通过一个

32、专 门的信道来进行通话和接听。会话将一直进行下去直到我们决定挂断电话(除非我们 使用蜂窝电话) ,除非我们挂断电话,否则我们各自的电话线路都会占线。如果你需要 在两台机器之间进行通讯而不使用高级机制像 ORBS(以及 CORBA, RMI, IIOP 等等) ,Socket 比较适合你。Socket 的底层机制则相当棘手。幸运的是,Java 平台给我们一些 虽然简单但是相当强大的高层抽象以至于我们创建和使用 Socket 更加容易一些。 基于 JAVA 聊天室的设计与开发7 3 需求分析 3.1 项目概述 3.1.1 产品描述 人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。

33、一个 操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好 的交流作用。本聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户 可以通过网上聊天室将自己融入整个主流社会中。因此,在网上聊天室这个虚拟的社 会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。 该小聊天室是为许多喜爱上网聊天的朋友开发设计的。和许多大型的网络聊天室 相比该小聊天室比较简单,但能实现聊天的基本功能,点对点聊天等,基于时间和技 术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由注册界面、登录界面、 聊天室界面、功能设置界面等构成。整个设计简洁明了、实用,使用简单。

34、图 3-1 客户端结构图 客户端 注册登录主界面聊天 3 需求分析8 图 3-2 服务器端结构图 3.1.2 产品功能 本项目具有以下主要功能: 客户端: (1)用户注册功能:实现用户的登入 ID 注册和个人信息,并存入服务器数据库中。 (2)用户登入功能:实现合法注册用户的登入。 (3)聊天功能:实现用户和在线的其他用户一对一的聊天方式。 (4)发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。 服务端: (1)可以不断的监听客户端请求 (2)显示登入客户的信息 (3)发送系统消息 3.2 功能需求 3.2.1 用户注册 需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后

35、,系统生成用 户所注册的登入 ID,并保存在数据库当中。 执行者:用户 前置条件:无 服务器端 系统服务系统配置用户管理在线用户日志管理 基于 JAVA 聊天室的设计与开发9 后置条件:无 正常过程: (1)向服务端发送注册请求 (2)服务端响应客户端,客户端弹出注册信息表单 (3)用户填写完表单后将注册数据传给服务端处理,并保存在数据库中 (4)返回客户端一个响应,显示用户注册的 ID,提示注册成功。 异常过程: (1)用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示信息, 并将光标定位到出错的地方。 (2)用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户 重新

36、填写表单。 (3)服务器未启动或出现异常 3.2.2 用户登入 需求描述:用户填写登入 ID 和密码,经服务器验证成功后进入聊天室主界面。 执行者:用户 前置条件:用户成功注册或已经拥有一个合法的 ID 号 后置条件:无 正常过程: (1)向服务端请求连接,并发送登录信息。 (2)服务端处理并查询数据库中的用户信息。 (3)返回客户端一个响应,提示登录成功,弹出聊天室主界面。 (4)刷新其他在线用户的用户列表信息。 异常过程: (5)用户填写的 ID 或密码与数据库中的纪录不匹配,客户端提示登录失败。 (6)客户端设置的服务器地址或端口有误。 (7)服务器未启动或出现异常。 3.2.3 一对一

37、聊天 需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。并且对方有消息提示, 双方发送的信息对于聊天室的其他用户是不可见的。 执行者:用户 前置条件:用户登录成功,聊天的对方在线 后置条件:无 正常过程: 3 需求分析10 (1)客户端与服务端建立通讯 (2)客户端将用户发送的信息打包传送给服务端 (3)服务端进行数据分析,查找目的用户的 ID,并将用户的信息传给目的用户 (4)目的用户收到服务器的信息后,正确的显示并保存 异常过程: (5)客户端与服务端断开连接,客户端提示信息发送失败。 (6)客户端发送的聊天内容包含不合法的字符 3.2.4 发送表情 需求描述:用户的聊天内容可以是表

38、情图片 执行者:用户 前置条件:用户可以正常聊天 后置条件:无 正常过程: (1)客户端与服务端建立通讯 (2)客户端将表情所表示的信息传送给服务端 (3)服务器端进行数据分析后,查找目的用户的 ID,并将所处理的信息传给目的 用户,目的用户端通过本地文件将信息翻译成表情并正确显示在显示窗体中。 异常过程: (1)客户端与服务端断开连接,客户端提示服务器异常。 (2)客户端发送的表情信息不正确或本地文件不存在异常 3.2.5 用户退出 需求描述:用户在正常情况下退出聊天室 执行者:用户 前置条件:用户成功登录聊天室 后置条件:无 正常过程: (1)向服务器发送用户登出消息 (2)服务器进行用户

39、退出的数据处理 (3)服务器向聊天室其他用户发送登出消息 (4)刷新其他在线用户的用户列表信息 3.3 质量性能需求 (1)容错性需求: 基于 JAVA 聊天室的设计与开发11 当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之间信息 传输不会因为数据封装问题出现丢失或乱码。因用户的误操作产生的异常应做出及时 的处理或信息提示。 (2)稳定性需求: 软件应正常完成所有功能需求。服务器端应长时间运行无故障,故障修复时间一 般控制在 3 小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作 系统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄 露。要

40、求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象。 (3)软件设计需求: 要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可 靠性和稳定性得到提高,并且便于系统维护,和新模块的添加。 安全性:安全性是防止网络方面的攻击。 扩展性:系统建成后,应在现行系统上不需要做大的改动或不影响整个系统结构, 就可以增加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。 易用性:系统操作的界面必须简洁、操作方便易用、设计合理。 4 概要设计12 4 概要设计 4.1 系统的代码结构 本系统的原程序几乎全部有代码构成,一个可分为四个部分, Server、New、R

41、egister 和 MainWin。用其中的两个表 qq 和 friend 来存取程序所用到的 一些信息。服务器端用 Server 来执行,客户端用 New 来执行,其它的两个类都是被调 用的。下面我就对各个部分进行一下详细说明。 4.2 主程序类的设计(MainWin 类) 本部分是整个系统中最大的部分,但它们并不被直接执行,而是通过别的类来调 用。它的主要作用是桥梁作用,里面定义的都是监听事件,当客户端要做某种操作时 都可以被该类中相应监听事件所捕捉,然后监听事件对所捕捉到的客户端的操作进行 相应的处理。该部分能实现好友查找,建立创建列表类,处理列表类和发送信息类来 组成。 (1)创建列表

42、类 这个类包括好友列表和用户的功能列表。这两个列表的布局是一样的,都是空布 局,然后一个一个的把控件添加上去,每添一个都要把坐标值付给主容器即主窗体, 以便在相应的位置上显示这个控件。 (2)查找好友类 查找好友实际上就是要对数据库进行查询操作,其实现方法是通过 Server 类来做 的。通过数据库的查询可以直接显示出其他用户的呢称,性别和所在省份。 (3)收发信息类 本系统主要部分尤其是难点都在网络传输上,所以发送信息部分就比较主要,它 可以说是这个程序的一个标识。 发送信息是通过 UDP 协议直接向其他用户发送出去的,接收信息是在 MainWin 类里,用多线程里的无限监听方法,随时等待接

43、收其他用户传来的信息。 4.3 多线程的设计 服务器多线程详细设计: 主服务器类调用 ServerThread 类来实现服务器端的多线程,而每个 ServerThread 实体就是一个单独的线程,即对应于客户端连接请求响应的线程。服务器端总有一个 线程在指定的端口等待客户的连接信息,即使用 ServerSocket s=new ServerSocket(8080)语 基于 JAVA 聊天室的设计与开发13 句在 8080 端口创建套接口;当有客户端申请连接时使用 new ServerThread(socket)语句 创建一个新的线程来和客户端建立连接。 ServerThread 类的构造,首先

44、创建 ServerThread(Socket s)线程的构造函数再通过 Socket=s 来取得 ServerThread(Socket s)的传递函数,同时使用 BufferedReader(new InputStreamReader(Socket.getInputStream()来创建。最后使用 start()函数启动这个线 程;使用 run()来监听已经连接的线程。 客户端的多线程设计: 客户端的多线程设计和服务器端的不同,客户端是用多线程里的无限监听方法, 随时等待接收其他用户传来的信息。当然客户端是调用 Thread 类来实现多线程的,用 run()方法来提供监听,然后创建一个异常来

45、处理当有好友连接时出现的各种情况,如, 好友上线,好友下线,有好友添加你为好友,有好友给你发送消息等等。 4.4 服务器端的设计 (Server 类) 服务器的工作主要是处理客户端与数据库的数据传递。一方面要对客户端提出的 申请做出应答,另一方面要对数据库进行相应的操作。所以,与数据连接的语句全在 Server 里,这样无论对调试还是运行都比较方便。 但 Server 类主要处理这些连接工作,对数据的具体操作几乎没有,能看到的只是 在 DOS 界面的一些文字显示而已。例如,申请号码成功就要是要在 Server 端显示出申 请成功,并显示出所申请的号码;添加好友时要显示好友的号码,并显示是否添加

46、成 功。 Server 类主要是对客户端提出的申请做出回应,有 login 登录,new 新建,find 查 找好友,friend 读取好友资料,addfriend 添加好友,delfriend 删除好友,logout 退出程 序,getwhoaddme 上线的时候通知好友。 由于 Server 只需处理客户端的申请和连接数据库,就没有必要在用窗体来显示了, 所以我只把服务器端的响应在 DOS 界面中打印出来,无论是什么样的申请,做出什么 样的应答,在服务器端都会有所显示,让用户清楚的看到。 Server 端执行的是一个无限监听的过程,它要随时等待客户端说发出的申请。即 使完成了一个申请,也要

47、继续等待处理下一个申请,直到 Server 的退出 Server 类结构。 功能说明: Server 类是处理客户端和数据的连接工作的,同时也要对客户端的请求做出回应。 start()是线程的启动方法。 run()线程的运行方法,里面是程序的主要部分,用于做出服务器的所有回应。 4 概要设计14 4.5 消息通信的设计 本系统中通信主要是通过数据报服务来实现的,Java 实现数据报通信的过程除了 面向连接的 Soket 外,还有无连接的数据报 Soket。数据报是网络层数据单元在介质上 传输信息的一种逻辑分组格式,它是一种在网络中传播的、独立的、自身包含地址信 息的消息,它能否到达目的地,到达

48、的时间,到达的内容是否回变化是不能准确知道 的。数据报的通信双方不需要建立连接,对于像聊天通信这些不需要很高质量的应用 程序来说,数据报通信是一个很好的选择。 在 Java 的 API 函数中有 J 这样包,此包中有两个类 DategramSocket 和 DategramPacket,他们为应用程序采用数据报通信方式进行网络通信提供了支持,本系 统对数据流的操作主要用这两个类。 工作流程是这样的,首先通信双方要建立数据报通信的 Socket。可以通过创建 DategramSocket 来实现它,其构造方法有以下两种: (1)Public DategramSocket() 构造一个数据报 So

49、cket,并使其与本地主机任一可用 的端口连接。若打不开 Socket 则抛出 SocketException 异常。 (2)Public DategramSocket(int port) 构造一个数据报 Socket,并使其与本地连接主 机指定的端口连接。若打不开 Socket 或 Socket 无法与指定的端口连接则抛出 SocketException 异常。 然后,处理接受缓冲区的数据,获取服务结果。最后,当处理完缓冲区的数据, 可以使用 DategramSocket 对象 close()方法来关闭数据包通信 Socket。 基于 JAVA 聊天室的设计与开发15 5 系统的实现 5.1 主程序类的实现 主程序是利用 MainWin 类来实现的,虽然主程序类并不被直接执行但是由于所有 的事件处理都在这个类中实现所以主程序类包含大量的成员变量,可分为三大块,第 一是保存好友基本信息所有变量的定义,第二是用于临时变量保存临时好友也是用户 的基本信息和一些数组的指数,第三是网络相关变量,再加上程序界面变量就是在此 系统中用到的所有变 5.2 多线程的实现 服务器端的多线程是通过 Java 提供的 API 函数中的 ServerThr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1