文档库 最新最全的文档下载
当前位置:文档库 › (完整版)JAVA聊天室毕业论文

(完整版)JAVA聊天室毕业论文

江苏省徐州机电工程高等职业学

毕业设计

姓名:杨雪芳

系部:信息工程系

专业:软件技术

设计题目:聊天室(Java)

指导教师: SIDDHANT、韩伟

职称:

2012年07月

摘要

随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。

在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。传统的信息交流工具,不能满足人们即时获取信息的要求。因此,网上聊天便成为人们的首选,而一个好的聊天工具是:操作简单、方便、人性化,节省系统资源。为了方便与人即时联系及数据汇报,特构建此聊天系统。

本论文通过Java的Socket实现了一个基于局域网和网络的聊天室程序的开发。本论文详细介绍其设计和实现过程。

关键词:聊天室;Java;客户机服务器;Socket;

Abstract

With the development of Internet technology, people's 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 people's 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 important channel for transmitting information, it play an important role in a person's 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 TCPIP协议常识…………………………………………………………

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 用直没什么区别。

2.2 本课题开发工具的选择

Java的开发工具很多,而且各有优缺点,在这里我选用了Eclipse作为开发工具,Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse 是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。

Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:

1.开放的可扩展的IDE

2.成功的底层图形界面API

3.强大的插件加载功能

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 运行环境

运行环境见下表。

表 4.1

4.3 体系结构概述

本系统采用CS的结构设计模式,客户端接收用户的发送的信息到服务器,服务器通过处理转发到另一些客户端。客户端采用图形用户界面,方便与用户交互。服务器端用控制台的方式方便控制操作。

客户端分为用户登录、群聊、私聊、好友列表。用户登录封装在用户登录的界面中,群聊、私聊、用户列表模块封装在聊天的主界面中。

服务器端实现消息接收、消息转发等功能。

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章详细设计

本系统采用CS设计模式,系统分为客户端和服务器端,客户端包括登入模块,聊天模块。

服务器端服务器启动实现模块。

5.1 登入

功能描述

在该登陆页面下,我把端口写死了,只需输入用户名就可以直接登入聊天室主界面。

登陆界面窗口如下:

5.2 群聊

●功能描述

用户在文本编辑区域输入信息,单击群聊按钮直接把信息发送到群聊显示的区域。并且按照发送来的信息中包含好的显示方式正确显示出信息。

群聊界面窗口如图所示:

5.3 私聊

●功能描述

用户在文本编辑区域输入信息,选中要私聊的对象,单击私聊按钮直接把信息发送到该用户私聊显示的区域。并且按照发送来的信息中包含好的显示方式正确显示出信息。私聊对象不能选择自己,如果选择自己,会弹出“不能和自己私聊”的提示框,还有不能不选择私聊对象,如果不选择的话,会弹出“请选择私聊对象”的提示框。

私聊界面窗口如图所示:

5.4 好友列表

●功能描述

服务器端收到用户上线或下线时发送给它的请求,刷新好友列表。

5.5 用户退出

●功能描述

在聊天页面,单击关闭按钮,该用户就退出了并通知其他在线用户该用户退出了。

如图所示:

5.6 功能逻辑实现

逻辑功能描述

本系统采用数据对象流的形式发送和接受信息。

客户端连接服务器成功后就启动一个客户端线程和服务器通信。客户端发送的信息分为:登入消息、群聊消息、私聊消息、用户上下线消息提醒等。

服务器端启动一个线程不断的监听客户的请求,当接受到客户请求时就启动一个和该客户端通信的线程。

第6章系统测试

为了确保本系统能够正常运行,需要在发布之后做一次较全面的测试。现将具体操作及过程举例说明如下:

6.1 测试举例

6.1.1 测试程序登录界面

打开程序后,首先出现的是登录页面,输入用户名,点击登录按钮,。

6.1.2 测试程序主界面

进入主界面后,主页面会显示群聊信息显示区、私聊信息显示区、文本编辑显示区、在线用户列表区、功能按钮区。用户可以在用户列表中看到目前在线的其他用户,并在群聊信息显示区内看到用户上下线通知和群聊信息,私聊信息显示区内看到私聊的信息。用户可以在文本编辑显示区

内输入自己的发送内容,并可以通过单击用户列表名中的用户,进行私聊,发送的信息其他用户不可以见。

6.1.3 测试程序退出

当单击退出按钮或窗体的关闭时,用户将发送退出信息,离开聊天室,其他用户可以得到系统提示用户下线并刷新用户列表。

6.2 测试项目

由于实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是软件开发过程中为保证软件质量必须进行的工作。

6.2.1 单元测试

单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。

6.2.2 系统测试

系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软

相关文档
相关文档 最新文档