java Socket技术开发网络聊天室毕业论文文档格式.docx

上传人:b****8 文档编号:22722909 上传时间:2023-02-05 格式:DOCX 页数:39 大小:349.20KB
下载 相关 举报
java Socket技术开发网络聊天室毕业论文文档格式.docx_第1页
第1页 / 共39页
java Socket技术开发网络聊天室毕业论文文档格式.docx_第2页
第2页 / 共39页
java Socket技术开发网络聊天室毕业论文文档格式.docx_第3页
第3页 / 共39页
java Socket技术开发网络聊天室毕业论文文档格式.docx_第4页
第4页 / 共39页
java Socket技术开发网络聊天室毕业论文文档格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

java Socket技术开发网络聊天室毕业论文文档格式.docx

《java Socket技术开发网络聊天室毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《java Socket技术开发网络聊天室毕业论文文档格式.docx(39页珍藏版)》请在冰豆网上搜索。

java Socket技术开发网络聊天室毕业论文文档格式.docx

真正降低了企业成品和程序员的负担。

随着信息科学的进步与互联网络的发展,虽然通过网络的聊天软件很多,但针对于部系统的、局域网的聊天和公司部的上下级沟通的聊天通讯软件却很少。

所以开发一个此类型的即时通讯系统就变得非常有意义了。

1.1 聊天室的发展

聊天室作为即时通讯的一种,即时通讯(InstantMessenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国用户量第一的腾讯QQ,以及微软的MSNMessenger都是大众关注的焦点,它们能让你迅速的在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。

而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子的功能。

IM软件的历史并不久远,但是它一诞生,就立即收到网民的喜爱,并风靡全球。

在它的发展史上,以色列人是功不可没的。

正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“ISeekYou”,简称ICQ了。

知道现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。

目前,国最为流行的即时通讯软件是OICQ(简称QQ)。

它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。

Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。

最为WindowsXP的一部分,Messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。

它的令人耳目一新的中文界面和注册方式,连同它强大的功能了,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。

1.2 即时通讯的9大应用

第2章系统开发环境与工具的选择

2.1 本课题开发环境的选择

在进行开发之前,首先决定的第一个问题就是,该使用什么开发环境来编写该系统?

以目前常用的开发语言来讲有C/C++、.NET技术,JAVA、VisualBasic几种。

还有Eclipse,、BorlandJBuilder等,这些并不是程序语言,而是程序语言在建构程序时的“集成开发工具”,不过它们在开发设计的过程中也占有相当重要的角色,因为选用正确的集成开发工具,可以加速程序设计的进行、测试与排错,因而对整体进度具有决定性的影响。

基于以下几点,选择JAVA语言开发技术。

1、就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。

用户可能使用的是WindowsLinux。

JAVA语言具有平台无关性,可以不需要任何修改就可以运行在支持JAVA的任何计算机上。

2、JAVA的Swing组件开发技术可以开发丰富的图形界面,并且SwingAPI类提供了丰富的外部接口和方法,可以方便实现系统功能。

3、就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数)库的支持,使得利用Java开发各种应用程序,可以说是易如反掌。

此外,在程序除错、修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容易。

4、Java支持在的多线程运行,提供分布式的并发机制,运行效率高。

5、异常处理,为了使Java程式更稳定、更安全,Java引入了异常处理机制。

能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。

通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。

6、高性能,Java可以在运行时直接将目标代码翻译成机器指令。

Sun用直接解释器一秒钟可调用300,000个过程。

翻译目标代码的速度与C/C++的性能没什么区别。

7、网络功能,Java可以说是借助因特网而重获新生的,自然具备编写网络功能的程序。

不论是一般因特网/局域网的程序,如Socket、Email、基于Web服务器的Servlet、JSP程序,甚至连分布式网络程序,如CORBA、RMI等的支持也是非常丰富的,使用起来也很方便。

8、源回收处理,Garbage 

Collection是由JVM对存实行动态管理的。

程序需要多少存、哪些程序的存已经不使用了,需要释放归还给系统,这些烦琐且危险的操作全部交由JVM去管理。

让我们能够更专心地编写程序,而不需要担心存的问题。

存的统一管理,对于跨平台也有相当大的帮助。

2.2 本课题开发工具的选择

Java的开发工具很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环境(IDE)。

它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。

Eclipse是开放源代码的项目,并可以免费下载。

支持最新的Java标准,并且缩短了开发周期。

一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。

Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。

用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。

可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。

其主要特点如下:

1.开放的可扩展的IDE

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

3.强大的插件加载功能

4.可以通过导入一些CVS相关的插件来实现版本管理的便易性

2.3 本课题开发技术的选择

本课题选择了javaSocket技术开发网络聊天室。

什么是socket?

socket是一种用于表达两台机器之间连接“终端”的软件抽象。

对于一个给定的连接,在每台机器上都有一个socket,你可以想象一个虚拟的"

电缆"

工作在两台机器之间,“电缆”插在两台机器的socket上。

当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。

简单的说,一台计算机上的socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。

当你发送数据时,TCP/IP协议栈的每一层都给你的数据里添加适当的报头。

有个好消息是java语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流socket”。

思考一下socket像听筒一样在的任意一端--你和我通过一个专门的信道来进行通话和接听。

会话将一直进行下去直到我们决定挂断(除非我们使用蜂窝),除非我们挂断,否则我们各自的线路都会占线。

如果你需要在两台机器之间进行通讯而不使用高级机制像ORBs(以及CORBA,RMI,IIOP等等),socket比较适合你。

Socket的底层机制则相当棘手。

幸运的是,java平台给我们一些虽然简单但是相当强大的高层抽象以至于我们创建和使用socket更加容易一些。

一般而言,javasocket有下面两种类型:

•TCPsocket(由Socket类实现,下面的章节我们将对其讨论)

•UDPsocket(由DatagramSocket类实现)

TCP和UDP扮演同样的角色,但是实现是不同的。

两者都接收传输协议数据包并把它们传递到表示层。

TCP把信息分解成数据包(datagrams)并在接收端重新组装起来。

它还对丢失的数据包进行重新传输的请求。

TCP减少了上层的担忧。

UDP没有组装和重传请求的功能。

它只是传输数据包。

更高层的层必须确保信息的完整性以及组合顺序的正确性。

第3章需求分析

3.1 项目概述

3.1.1 产品描述:

人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。

一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网的用户可以起到很好的交流作用。

本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。

由于目前上网的一般都是具有高学历的新一代创业者,因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。

该小聊天室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。

和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。

本聊天室主要由注册界面、登录界面、聊天室界面、私聊界面、查看聊天容界面、功能设置界面等构成。

整个设计简洁明了、实用,使用简单。

图3-1客户端结构图

图3-2服务器结构图

3.1.2 产品功能

本项目具有以下主要功能

客户端:

Ø

用户注册功能,实现用户的登入ID注册和个人信息。

用户登入功能,实现合法注册用户的登入。

公聊功能,实现用户和在线的所有用户聊天方式。

私聊功能,实现用户和在线的其他用户一对一的聊天方式。

查看聊天记录,实现用户查看已聊天的历史聊天容,分为公聊记录和私聊记录。

发送表情和设置聊天容字体,并可以设置字体颜色和背景色等。

服务端:

可以不断的监听客户端请求

显示登入客户的信息

发送系统消息

3.2 功能需求

3.2.1 用户注册

需求描述:

用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入ID,并保存在字段当中。

执行者:

用户

前置条件:

后置条件:

正常过程:

向服务端发送注册请求;

服务端响应客户端,客户端弹出注册信息表单;

用户填写完表单后将注册数据传给服务端处理,并保存在字段中;

返回客户端一个响应,显示用户注册的ID,提示注册成功。

异常过程(可选):

用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示信息,并将光标定位到出什么不能为空或注册错误的地方;

用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示已有用户注册;

服务器未启动或出现异常。

3.2.2 用户登入

用户填写登入ID和密码,经服务器验证成功后进入聊天室主界面。

用户成功注册或已经拥有一个合法的ID号

向服务端请求连接,并发送登录信息;

服务端处理并查询数据库中的用户信息;

返回客户端一个响应,提示登录成功,弹出聊天室主界面;

刷新其他在线用户的用户列表信息。

用户填写的ID或密码与数据库中的纪录不匹配,客户端;

提示登录失败;

客户端设置的服务器地址或端口有误。

3.2.3 公聊

用户在聊天室公聊界面的发言容,聊天室中的其他在线用户可以正常接受并正确显示(包括发送的表情和用户设置的字体颜色)。

登入用户

用户登录成功

客户端用户登入成功后,启动客户端功能线程;

客户端将用户发送的信息打包传送给服务端;

服务端进行数据分析后,并将用户的信息进行正确的处理;

传给处在聊天室的所有在线其他用户并正常显示。

客户端与服务端断开连接,客户端提示信息发送失败;

服务器未登录上线,客户端无法发送信息。

3.2.3 私聊

用户可选择聊天室的在线用户列表中任意一个用户聊天,双方发送的信息对于聊天室的其他用户是不可见的。

私聊用户

用户登录成功,私聊的对方在线

客户端与服务端建立通讯;

服务端进行数据分析,查找目的用户的ID,并将用户的信息传给目的用户;

目的用户收到服务器的信息后,正确的显示并保存。

客户端与服务端断开连接,客户端无法发送消息。

特殊需求(可选):

不能与不在线的用户进行私聊。

3.2.4 发送表情

用户的聊天容可以是表情图片

用户可以正常聊天

客户端将表情所表示的信息传送给服务端;

服务器端进行数据分析后,查找目的用户的ID,并将所处理的信息传给目的用户;

目的用户端通过本地文件将信息翻译成表情并正确显示在显示窗体中。

客户端与服务端断开连接,客户端无法通讯。

3.2.5 聊天记录

用户可以查询聊天的历史纪录,包括公聊记录和私聊记录。

用户正确登入后

发送、接收信息的同时将信息保存在本地文件中;

从保存的txt文档中可以查询到历史聊天记录;

从本地文件中读取信息,并显示在记录显示匡中。

服务端异常导致客户端退出,客户端提示服务器异常。

3.2.6 系统消息

在聊天室的每一个用户都能接收服务端发送的的信息提示消息。

服务端

服务端正常运行

服务器向所有在线用户发送消息;

客户端接收到消息,进行消息处理,并正确显示;

服务端异常,重启服务器。

3.2.7 字体属性设置

用户可改变输入消息的字体及颜色

用户为聊天信息选择新的字体和颜色;

客户端将聊天信息及字体和颜色信息封装,发送到服务端;

服务端处理接受到的数据并正确转发;

目的客户端将接收到的信息解包,根据信息的容,改变信息显示的字体及颜色,并在目的客户端正确显示出字体效果。

对方不支持字体属性的显示。

3.2.8 清屏效果

清楚所有的文字消息

用户正常登录后

文字过多,用户可清楚用户自己上的所有的文字消息。

服务器出现异常,清屏效果无效。

3.2.9 时钟效果

显示时间

点击时钟,显示现时时间的多少。

服务器出现异常,时间无效果

3.2.10 用户退出

用户在正常情况下退出聊天室。

用户成功登录聊天室

向服务器发送用户退出消息;

服务器进行用户退出的数据处理;

服务器向聊天室其他用户发送登出消息;

第4章概要设计

4.1 目的

该阶段目的在于明确网络聊天室系统的数据结构和软件总体结构,各个软件模块的功能说明,数据结构的细节,系统运行配置与应用方式以及使用的关键技术。

4.2 运行环境

运行环境见下表。

表 4.1

名称

操作系统类型

推荐操作系统版本

推荐硬件(CPU/RAM/HD)

数据库

客户端

Windows平台

windows2000以上

P41.7G/256M/40G

服务器

P43.6G/8G/120G

4.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 表情图

4.4.6 字体设置

用户在聊天界面的功能模块中,字体设置框中选择所需要设置的字体样式、字体类型、字体大小,并在信息显示框中显示出当前设置的字体效果,并将设置好的字体属性应用到自己的发送信息中。

图4-6 字体设置图

4.4.7 记录保存

用户在公聊和私聊的过程的同时,将显示在信息窗体中的聊天容保存到本地文件中,用户可以通过单击本地文件查看历史聊天记录容,并可以在下次登入后,查看历史聊天的记录。

图4-7 记录保存图

4.4.8 系统消息

用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发送系统消息,用于发送公告,提示等系统消息,可以方便管理员和客户的交流和管理。

图4-8 系统消息图

4.4.9清屏效果

用户通过登录客服端后,点击客服端上的清屏效果消除所有的聊天信息,这样可以使界面干净整洁,使用的用户操作更方便。

图4-9 清屏效果图

4.4.10 时钟效果

用户通过登录客服端后,点击客服端上的时间效果显示时间,这样可以使用户把握住时间的快慢多少,提高用户的时间观。

第5章详细设计

本系统采用C/S设计模式,系统分为客户端和服务器端,客户端包括注册模块、登入模块、公聊模块、私聊模块、功能设置模块、和清屏效果和时钟效果。

服务器端包括服务器界面,服务器功能实现模块等。

5.1客户端注册

●功能描述

用户必须填写注册给定的全部选项,并且按照正确的格式输入,如年龄一项只能输入数字,的格式等等,并可以在申请注册前验证输入的用户名是否已被使用。

●综合设计

实现该功能所写的类为:

(1)、ZheceRegister类:

用于构建注册的主界面

主要成员变量:

lblUserName,lblGender,lblAge;

lblPassword,lblConfirmPass,lblEmail,logoPosition;

主要方法:

publicZhuceRegister(Stringip){}//构造方法

(2)、xxx类用来检测注册的用户名是否已被使用

主要成员变量:

(3)、xxx类发送注册消息容

(4)、xxx用户发送给服务器端的注册类型数据

5.2登入

在设置好IP和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登入,通过验证后登入聊天室主界面,输入错误无法登录。

●综合设置

实现该功能的主要类和方法

(1)、DengluLogin类实现登入的主窗体

lblServer,lblUserName,lblPassword,lblLogo;

publicDengluLogin(){}//构造登陆的窗体

(2)、xxx类发送登入数据类型

5.3公聊

用户在公聊界面的信息输入框中输入要发送的信息和表情等,用户可以通过功能设置按钮设置自己定义的字体属性,如:

字体样式、字体类型、字体大小、字体显示方式、表情等,并可以应用到信息输入框中,点发送按钮实现信息的发送。

并可以显示其他用户发送的公聊信息和系统所发送的系统信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。

用户上线或下线时要在显示窗体中给出提示,并刷新用列表中的用户名。

并可以通过双击用户名弹出与该用户进行私聊。

实现该功能的主要类和方法

(1)、xxx类公聊界面

5.4、私聊

用户在私聊界面的信息输入框中输入要发送的信息和表情等,用户可以通过功能设置按钮设置自己定义的字体属性,如:

字体样式、字体类型、字体大小、字体显示方式、表情等,并可以应用到信

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1