1、 T 论文分类号: TP 学校代码: 13681 毕业设计说明书 (论文 ) 题目: 基于 JAVA聊天室的设计与实现 学生 姓名 : 学 号: 系 部 : 专业 班级 : 指导教师: 二 一一 年 七 月I Based on the Java Chat Room Design and Implementation ABSTRACT The rapid development of computer network technology, so that people can choose to communicate more and more the traditional means o
2、f 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 and information receiver almost at the same t
3、ime 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 former through the Socket establish a server, s
4、erver 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 Thread class inheritance to create multiple t
5、hreads. 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 flow to achieve information exchange, which
6、 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 preparation, first in a short period of time can buil
7、d 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 of the function of the system. Through this
8、 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. KEY WORDS:Java chat room ,application prog
9、ram ,development environment II 基于 Java 聊天室的设计与实现 摘 要 计算机网络技术的快速发展, 使人们可选择的交流方式越来越多 ,传统的通信方式在速度和可靠性方面已经很难满足人们的需 要,即时通信系统已成为人们的新宠也是人们生活中不可或缺的一部分。 即时通信即 指信息的发布者与信息的接收者几乎同时达到传送要求,延迟很小的系统工具。如常用的 QQ 工具, 飞信, MSN 等通讯系统工具。 该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过 Socket 套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户 列表。后
10、者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程。开发中利用了计算机网络编程的基本理论知识 ,如 TCP/IP 协议、客户端 /服务器端模式( Client/Server 模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用 Eclipse 为基本开发环境和 Java 语言进行编写,首先可在短时间内 建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多
11、线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用 Eclipse 集成开发环境来创建和开发项目,从而完整的实现 整个 系统的功能。 本系统结构设计合理,功能齐全 ,采用模块化设计、操作简单,具有良好的人机界面和灵活的系统可维护性; 可以实现简单的功能如注册、登陆、查找好友、聊天等功能。并且服务端实现配置文件设置、用户管理、日志显示等功能。 关键词: 聊天室 ,应用程序,开发环境 III 目 录 1 引 言 . 1 1.1 即时通讯技术概述 . 1 1.2 目的和意义 . 2 2 项目开发工具和技术
12、选择 . 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 系统的代码结
13、构 . 11 4.2 主程序类的设计 (MainWin 类 ) . 11 4.3 多线程的设计 . 11 4.4 服务器端的设计 (Server 类 ) . 12 4.5 消息通信的设计 . 12 5 系统的实现 . 14 5.1 主程序类的实现 . 14 5.2 多线程的实现 . 14 5.3 服务器连接的实现 . 15IV 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
14、.1 功能描述 . 23 6.3.2 综合设计 . 23 6.4 发送系统消息 . 24 6.4.1 功能描述 . 24 6.4.2 综合设计 . 24 6.5 功能逻辑实现 . 24 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 用户验收测试
15、 . 28 结 论 . 29 致 谢 . 30 参考文献 . 31 毕业设计说明书(论文)缩写稿 . 31 The Abbreviation Version of the Thesis of Undergraduates. 39 基于 JAVA 聊天室的设计与开发 1 1 引 言 1.1 即时通讯技术概述 最初接触的即时通讯( Instant Messenger,简称 IM)即为聊天室。老牌的 ICQ、国内非常受大众欢迎的腾讯 QQ 以及微软 开发 的 MSN, Messenger 都是我们十分关 注的焦点。通过这些即时通讯工具我们可以在网上迅速的找到朋友或者工作伙伴,进行实时交流和互传信息。
16、经过这些年的研究发展,不少 IM 软件还集成了数据交换、语音以及视频聊天、网络会议、电子邮件等功能。 IM 技术全称 Instant Messaging, 中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与互联网上的年轻中国实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。 IM 的出现和互联网有着密不可分的关系, IM 完全 是 基于 TCP/IP 网络协议族 来 实现,而 TCP/IP 协议族则是整个互联网得以实现的 技术基础。 最早出现即时通讯协议是IRC( Internet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互 联网进行交谈和
17、沟通。随着互连网变得高度发达,即时通讯也变得远不仅仅是 聊天这么简单,自 从 1996 年第一个 IM 产品 ICQ 发明后, IM 的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在 IM 工具上实现,于是功能强大的 IM 软件便足以搭建一个完整的通信交流平台。目前即时通讯、 Twitter 受宠电子邮件过气最具代表性的几款的 IM 通讯软件有 MSN、 Google Talk、 Yahoo、 Messenge 腾讯QQ 等。 即时通讯技术( IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并 发送信息
18、时 让交谈双方都看到交谈的内容。大多数常用的即时通讯发送程序都会提供各种各样的功能。 IM 软件的历史并不久远,但是当时它一诞生,就立即受到许许多多的网民的喜爱和青睐,并且迅速的风靡全世界。而在它的发展史上,以色列人所作出的贡献是不可忽略的。在 1996 年 7 月四位以色列年轻人共同成立了 Mirabilis 公司,并且于同年 11 月推出了全世 界第一个即时通讯软件 ICQ,即“ I Seek You”,意为“我在找你”,简称就为 ICQ 了。直到现在, ICQ 已经推出了它的 2002a 版本,在全球即时通讯市场上占有非常重要的地位。同时, ICQ 仍然存在一些局限性。一是英文界面,二是
19、在使用操作上有相当的困难,这使得 ICQ 在国内使用的范围虽然也比较广,但始终不是特别普及和推广,大多局限于“网虫”级别的高手里。 目前,国内最为流行的即时通讯软件是 OICQ(简称 QQ)。腾讯 QQ 以良好的中文1 引言 2 界面和不断增强的功能形成了一定的 QQ 网络文化。由于当时这种需要随时在网上运行的聊 天工具一直受制于互联网的拨号上网,这导致 QQ 用户数一增加就要不断的扩充服务器,客观上来说,电信运营商对宽带投入的大幅增长导致互联网的更加普及,在某种意义上说,这是即时通讯繁荣的物质基础。 Messenger 虽然出道较晚,但依托微软的强大背景,实力也不可小视。作为 Windows
20、 XP 的一部分, Messenger 整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视。 1.2 目的和意 义 目的: 通过 Java 的手段来 模仿 QQ,设计一个用于局域网的即时通讯工具,使其具有一般的即时通讯工具具有的功能。如注册、登陆、查找好友、 实现 即时消息 的 发送与接收,可多人会话, 并且可通过 统一的消息管理器管理 , 服务端还需实现配置文件设置、用户管理、日志显示的功能。并且可以完成在学校的范围搭建一个可以供老师及学生相互交流及联系的平台
21、。学生与学生之间不必再通过互联网或手机等方式来实现相互之间的通信,完全可以通过 Java QQ 中的通信功能进行联系。老师可以通过 Java QQ 向同学们发送及时的信息如学院的通知、考试 通知、成绩通告,及时掌握学生的动态,提供必要的帮助。这就有效地解决老师与老师之间的,老师与学生之间的,学生与学生之间的通讯问题。 通过课题的设计对从而使我们对 Java 的开发背景有更加深刻的认识,同时可更加熟练的应用 Java 相关的知识,学会理论联系实践用知识去解决现实生活当中的问题。 意义 : 网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使
22、用 Java 的技术,如:开发各界面(登入、注册、聊天 等界面)使用 Swing 组件技术,实现网络的功能使用 Socket/Server Socket 技术,实现数据的保存 ,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。 通过对该项目的设计以开发可以使自己在 Java 技术方面得到全面应用,使自己项目开发能力的一个很好体现。 并且 对 Java 有更进一步的认识,充分理解和掌握 Java 在现实生活中的应用。将开发出来的作品运用到实际当中,如学校,企业等其他任何需要的地方。使人们之间的交流和沟通更加的多元化,也使信息的传递更加快捷和有效。在设计和开发的过程中不断跟踪国内外
23、最新的技术和开发模式,即时了解和掌握流行的即时通讯 机制并且应用到实践过程中,极大的提高自己的设计和开发软件的积极性。 即时通讯的出现改变了人们的沟通方式和交友文化,大大扩展了个人生活交流 的空间。 基于 JAVA 聊天室的设计与开发 3 2 项目开发工具和技术选择 2.1 开发工具 2.1.1 Java 简介 Java 最早大概可追溯至 1991 年四月份, Sun 的绿色计划 (Green Project)开始着手于发展消费性电子产品 (Consumer Electronics),所使用的语言是 C、 C+、及 Oak (为 Java语言的前身 ),后因语言本身和市场的问题,使得消费性电子
24、产品的发展无法达到当初预期的目标, 再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致 Java的产生。 Java 是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。 Java 是一种软件技术,是一种由美国 Sun 计算机公司 (Sun Microsystems, Inc.)所研究而成的语言;是一种为 Internet 发展的计算机语言;是一种使网页 (Web Page)产生生动活泼画面的语言;是一种使网页由静态转变为动态的 一种 语言;是一种语言,用以产生小应用程序 (Applet(s);是一种简化的 C+语言是一种安全 的语言,具有阻绝计算机病毒
25、传输的功能;是一种将安全性 (Security)列为第一优先考虑的语言;是一种使用者不需花费很多时间学习的语言;是一种突破用户端机器环境和 CPU 结构的语言;是一种 写一次,即可在任何机器上执行 的语言是有史以来,第一套 允使用者将应用程序 (Applications)通过 Internet 从远端的服务器 (Remote Server)传输到本地端的机器上 (Local Machine)并执行;是一种应用程序提供者不需要知道使用者的计算机硬件 (如: Sun, Intel, 或 Mac 等 )与软件 (如: SW- UNIX, MAC O/S, Windows, 或 NT等 )环境的语言
26、。 2.1.2 MyEclipse6.0 开发工具 Java 的开发工具很多,而且各有优缺点, Eclipse 是一个开放可扩展的集成开发环境 (IDE)。它不仅可以用于 Java 的开发,通过开发插件,它可以构建其他的开发工具。Eclipse 是开放源代码的项目,并可以免费下载。支持最新的 Java 标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是 Eclipse 一直是广大程序员最喜爱的 Java 开发工具的原因之一。 Eclipse 的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在 Eclipse 集成开发环境中开发 Java 程序,快速而且高效。