"景先生毕设|www.jxszl.com

基于java的聊天室设计与实现【字数:5778】

2023-04-14 14:55编辑: www.jxszl.com景先生毕设
基于java的聊天室设计与实现
第一章系统概述

  1.1项目开发的背景与意义

  当前,我国的聊天系统种类繁多且功能上越来越强大,该论文的主题前正在作为聊天室通信系统的功能模块进行拓展和研究,在研究上是基于对公司在通讯网络信号的基础上进行构建公司内部的交流平台的实现,可以在设计上完成对整个的工作沟通频率和交流效率,提升整体工作的质量。公司员工可以使用系统可以随时发送消息,并且该系统包括一个支持本地网络和Internet的客户端程序和服务器程序,可以在任何地方进行群组对话,消息,传输文件,音频和视频对话等。公司可以在Intranet覆盖的任何地方,随时随地进行即时通信,从而在公司内部实现真正的协同作用。这使您可以无需花费大量时间和金钱通过网络在一个地方进行面对面的交流并提高效率。MSN,QQ和其他公共信息系统像聊天对象和不受控制的内容一样,这在设计上存在缺陷,即在沟通的过程中会存在降低企业的运营效率,即时通讯系统在企业中安装自己的服务器端点,系统管理员负责创建人员进行维护管理。本文的设计是基于QQ类似功能的设计,在研究上结合了现实生活中的通讯工具,可以实施完成基本的信息沟通交流,具有很好的实用价值。虽然是在QQ的功能上开发,并不是不具备自己的创新,在软件上新增签到功能,方便员工的考勤。后期的发展过程中会增加,一些其他的功能这都将根据用户的需求,通过代码实现。

  1.2系统设计要点

  聊天室系统的主要目的是提供在直接对话中实时满足两个用户的服务。

  (1)服务器的搭建过程

  在测试阶段我们选用的是阿里云的云服务器,成本低性能比较强。租用时间短。在服务器上安装Java用来写代码。使用SQL2000用于后台的数据库管理。使用IE进行数据查询。

  (2)服务器上的工作流程

  服务器终端创建一个连接,以通过系统接收客户端,并将服务器的链接到指定的本地计算机端口,该端口允许客户端侦听服务器中的存储客户端的名称,用户和相应的连接。不同的请求通过accept类别进行处理。通过服务器构建连接后可以实现客户和客户之间的信息平台的搭建。

  (3)客户流程

  客户端程序相对简单,在客户短安装相对应的软件给客户用来发送和接收数据。

  1.3系统开发的技术

  在设计上需要通过对技术的运用来提升整个的管理效率,从而实现最终的目的。

  1.3.1 Java语言

  在仔.细分.析了.不同.的高级计.算机.语言.的特.性和.适用.范围.之后.,决定.选择.专门.面向公.众的.Java来完.成研.究论.文的.设计.。

  为此,专门创建了Java,可以从桌面计算无缝转换为网络计算,并且.显然.可以.完成.此任.务,使用.Java语言.可以.为计.算机.开发.基于.Web的结.构化.程序.。Java网络.功能.正在.迅速.发展.,新功.能正.在增.加这.一宝.贵的.基础.,并且.JavaSoft实验室正.在不.懈地.努力.来改.进Java。对于.Java语言.,我将它们总结如下:

  Java.开发通.常需要三个.过程:源程序.的开发.,生成的.字节码.的编译.和执行.。Java编译器.不会在.程序执.行期间.将变量.和过程.引用编.译为数.字引用.或确定.内存布.局,而是将.符号引.用信息.保留在.字节码.中,并在执.行过程.中创建.内存布.局解释.器执行.的结果.,然后通.过控制.表确定.进程的.地址,从而有.可能有.效地保.证Java的可移.植性和.安全性.。

  1.3.2C/S模式介绍

  对旧C/s模型程序通常是安装在功能更强大的计算机上和客户端程序安装在通用PC上,客户端/服务器模型的出现是由于具有一定功能的个人PC代替了第一个静音终端。上面的模.式,它允.许主.机在.客户.端上.执行.某些.任务.,减少.主机.的工.作量.并提.高用户.响应.速度.和用.户容.量。

  客户端.和服务.器之间.的通信.是通过.网络协.议进行.的,并且是.逻辑链.路,因此在物理上可以将其扩展到客户端和服务器的两端,优势网络的计算模型[1]。

  此操.作模.式由.活动.请求.执行.:

  首先,服务.器必.须根据.请求.启动.并提.供相.应的.服务.(如下.所示.):

  (1)打开.一个.通信.通道.,并同.时通.知本.地主.机服.务器.愿意.接收.来自.客户.端的.请求.到一.个公.认的.地址.。

  (2)等待.客户.的请.求到.达。

  (3)接收.重复.的服.务请.求,处理.这些.请求.并发.送响.应信.号。

  (4)在等.待另.一个.客户.的请.求时.返回.第二.步。

  (5)禁用.服务.器。

  客户:

  (1)打开连接到服务器主机特定端口的通信通道。

  (2)在等待和接收响应的同时向服务器发送服务请求消息;请求的继续。

  (3)在请求结束时,通信通道被关闭和终止。

  第二章可行性分析与研究

  2.1可行性分析

  2.1.1经济可行性

  由于该系统本质上是基于软件的设计,因此它不专注于直接的经济利益和进一步发展的方向,它只专注于改进运用基本功能,本身并不需要很多费用,因此,如果拥有一台能够使用Java软件的计算机,则经济因素可不用考虑。

  2.1.2技术可行性

  该系统是从Microsoft SQL Server 2000作为系统数据库开发的学校网络的构建也为新系统/客户端服务器的结构提供了硬件支持。它是.一个.系统.开发.环境.,可以.接收.类型.和支.持对.象的.建议.,包括.丰富.的数.据类.型,并确.保开.发出.高性能.的系.统来.进行.系统.开发.以满.足需求。

  2.1.3运行可行性

  该系统是在本地网络上的小型聊天室系统,资源非常有限,现在一般的计算机,硬件和软件都能够满足要求,这使得系统可以运行。

  鉴于前述,满足了系统设计和开发的技术和材料条件,因此在技术运行上是可行的。

  2.2系统需求分析

  聊天系统对于服务器和客户端都是最重要的,服务器有两个主要任务:

  1)服务器的端点创建一个serverocket,并进行连续侦听以确定是否存在客户端连接请求或连接是否断开[2]。

  2)服务器是一个信息发送中心,所有客户信息都被发送到服务器,该服务器按需将其分发给客户。

  客户端工作:

  1)与服务器端建立通信通道,以向服务器端发送信息。

  2)从服务器接收响应信息。

  以上四个问题如果得到解决,就完成了聊天室系统的基本任务。

  2.3系统的功能需求

  本系统.主要通.过客户.端,服务器.端来体.现聊天.系统的.基本功.能。

  (1)服务器.端

  1.处理用.户注册.

  2.处理用.户登录.

  3.处理用.户发送.信息,服务器.监控聊.天内容.,服务器.过滤非法内容.

  4.处理用.户得到.信息

  5.处理用.户退出.

  6.服务器.踢人。

  7.保存服.务器日.志.

  8.保存用.户聊天.信息。

  (2)客户端.

  1.用户注.册界面及结果.

  2.用户登.录界面及结果.

  3.用户发.送信息.界面及结果.

  4.用户得.到信息.界面及结果.

  5.用户退.出界面及结果.

  2.3.1消息的安全需求

  在以下情况和相关要求下,A向B发送即时消息m:

  (1)如果发送无法成果,则必须通过A得到确认;

  (2)如果M已成功发送出去,则B只能接受一次。

  (3)协议必须向B提供一种手段来验证此信息已被传输;

  (4)协议必须允许B使用其他即时信息来响应该信息;

  (5)协议必须提供确保其他个人C不能修改m的手段;

  2.3.2信息加密和鉴别

  (1)协议.必须提供.手段.,以确.保通.知和.即时.消息.的可.靠性,而不.会被.拦截.或篡.改;

  (2)协议.必须提供.确保.通知.和即.时消.息的.可靠性的.手段.,并且.不得.重新.分类.或撤.销;

  (3)协议.必须提供.确保.实体.正确.阅读.通知.和即.时消.息的.方法.;

  (4)该协.议必.须允许.客户.使用.自己.的方.法,以确.保不.会截.获,复制.和解.密信.息。

  2.3.3通讯系统需求

  (1)注册.申.请

  1)即时.通.讯系.统.有多.个.账户.,可以.注.册多.个.用户.;

  2)用户.可.以注.册.多个.标.识符.;

  3)用于.记.录的.帐.户类.型.是字.母.ID。

  (2)沟通.需求

  1)用户.可.以发.送.短信.;

  2)用户.可.以RTF格式.发.送消.息.;

  3)用户.可.以加.密./解密.消.息等.

  第三章总体设计

  这里我们称之为聊天室通讯系统,需要对聊天室系统进行全局设计,是根据客户端/服务器模型(C/s)设计的,它是一个两阶段的C/s结构:应用服务器程序到一个应用程序客户端,其层次结构如图3-1所示。

  图3-1 C/S结构示意图



  客户端层也称为应用程序表示层,即我们的客户端,即应用.程序的.用户界.面。客户端.层负责.用户与.应用程.序之间.的对话.功能,它具有.许多优.点,它可用.于检查.用户的.输入数.据并显.示应用.程序的.输出数.据。为了允.许用户.直接操.作,客户端.层必须使用图.形
用户.界面,如果通.信用户.发生更.改,则系统.仅需重写显.示控件.和数据.检查程.序。而不碰.其他两.层[3]。

  服务层.也称为.功能层.,对应于.应用程.序的主.体,并在程.序中包.含特定.的流量.处理逻.辑,例如,用户必.须检查数.据,系统努.力进行.传输关.于对功.能层的.搜索需求的信.息,一次,而在用.户访问.之后,对讨论.的访问.信息由.功能层.处理[4],并通过.以下方.式发送.给代表.层:一旦进.入应用.程序设.计,重要的是要避免在代表层和功能层之间进行多次数据交换,这需要尽可能多地处理唯一服务以优化设计。

  3.1即时聊天系统的实施原理

  3.1.1工作方式和技术原理

  如果任何朋友列表随时在线连接并尝试连接到您的计算机,则聊天室系统会向您发送一条消息提醒您,然后您可以使用它创建一个论坛。聊天室系统如下:

  第一.步,用户.输入.用户.名和.密码.,服务.器访.问,通过.读取.用户.的数.据库.来验证用.户。

  第二.步,根据.IM服务.器上.存储.的好.友列.表,服务.器将.与在.线用.户相.关的.信息.发送.到仍.在同.一行.的好.友PC,包括.机器.状态.,IP地址.,时间.。实际.上,这里.收到.了TCP端口.的通.知客.户端.和朋.友。

  第三步.是服务.器im将其用.户A存储在.服务器.上的朋.友列表.以及相.关信息.(包括在.线状态.,IP地址,im客户端.使用的.TCP端口(端口),这些朋.友列表.及其在.线状态.,一旦客.户端im用户收.到a。

  3.1.2通讯方式

  (1)直接在线交流

  如果.用户.想与.在线.B的朋.友交.谈,他将.直接.通过.服务.器发.送信.息,例如.用户.B的IP地址.和TCP端口.号;点之.间的.通信.,例如.通过.网络.的直.接朋.友通.信。

  (2)在线代理交流

  由于防火墙,网络速度等原因,用户A和用户B之间的点对点通信很难建立或变慢,IM服务.器提.供活.动的.消息.传递.服务.,即用.户A和B的所.有即.时消.息在.发送.到IM服务.器之.前都.已发.送到.IM服务.器[5]。

  3.2软件设计流程

  由于对系统的要求非常明确,因此使用级联模型设计系统开发过程,该模型分为几个主要阶段,例如需求分析,系统设计,识别和编码测试[6]。在实践中,信息交换的主题,不是简单的线性过程,而是多次涉及的开发阶段过程,如图3-2所示。

  图3-2即时通讯系统开发流程图



  3.3功能模块划分

  按照以下步骤聊天室通讯系统工具

  (1)客户.在服.务器.上注.册以.通知.他他.正在.收听.

  (2)注册.后,客户.端将.消息.发送.到服.务器.。

  (3)然后.,服务.器向.正在.收听.该主.题的所.有客.户发.送一.条消.息。

  如上.所述.,系统.模块.的模.块图.如图.3-3所示.。

  图3-3通讯系统的功能模块



  3.3.1服务器端

  图3的已知服务器端至少执行三个主要功能:连接建立,数据存储和客户端侦听,这三个功能如下:

  1)建立服务器ServerSocket连接以连续检查是否存在客户端连接或断开连接。

  2)服务器是一个信息传输中心,所有的客户信息都传输到服务器,然后按需分发。

  3)数据库操作包括在数据库中存储用户信息等[7]。

  3.3.2客户端

  客户.端必.须实现.以下.主要.功能.:创建.新用.户,用户.访问.权限.,通信.。这些.功能.的含.义如.下:

  1)新用.户:客户.端与.服务.器终.端建.立通.信通.道[8],将新.的用.户信.息发.送到.服务.器终.端,并从.服务.器接.收信.息进.行记.录。

  2)用户.访问.:客户.端与.服务.器建.立通.信通.道,向服.务器.发送.信息.,并完.成用.户的.访问.。

  3)通讯.:编辑.,发送.和接.收客.户可.以填.写的.信息.的功.能。

  3.4数据库概要设计

  由于.系统.使用.2级C/s结构.模.式,因此.系.统仅.存.储用.户.信息.以.减少.服.务器.存.储量.并.简化.编.程[9]。在该.系.统中.,每个.表.的映.射.文件.都.可以.使.用工.具.生成.,订户.表.信息.可.以通.过.XML获得.。

  用户表(user)

  表1-1 dbo.users表



  dbo.friend表用于保存用户所加的好友及所在分组和备注信息,如表3-3所示:

  表1-2 dbo.friend表



  dbo.groups表用于保存用户所建立的分组名信息,如表3-4所示:

  表1-3 dbo.groups表



  dbo.message表用于保存用户消息交互双方的ID与信息,及信息类型,读取情况和发送时间,如表3-5所示:

  表1-4 dbo.message表



  第四章系统的实现

  4.1软件环境

  软件环境:WINDOWS 10、MyEclipse、jdk1.8.04、SQL Server等。

  其中还需要进行系统环境变量设置,下载JDK工具包,配置系统设置,下载jdk,设置安装路径完成安装后,我们就要进行对系统环境变量[10]的设置,这里需要设置JAVA_HOME、CLASSPATH、PATH三个环境变量。右击计算机,选择属性,选择高级系统设置中的环境变量:

  (1)JAVA_HOME用来表示JDK的安装路径。

  (2)Path使得系统可以在任何路径下识别java命令,path应该是本来就存在的,就不需要要新建,找到path,点击编辑;在值的最前面加上%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

  (3)CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才识别,设为:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar(要加.表示当前路径)%JAVA_HOME%就是引用前面指定的JAVA_HOME;

  设置完环境变量后,我们就要检验安装配置是否正确。点击开始,键入cmd,按回车键后,输入java-version,完成安装配置[11]。

  之后只要正确安装SQL Server和MyEclipse即可运行。

  4.2硬件环境

  开发此系统所需的基本硬件环境为:

  1.Windows系统;

  2.4G以上内存;

  5.000G以上可用硬盘空间;

  5.VGA显示器;

  4.3系统程序实现

  在这里只进行登录功能与添加好友功能的实现,首先打开服务器,再启动客户端,服务器响响应连接,输入账号与密码登入用户主界面,如图4-1所示:

  图4-1服务器响应用户登录图



  部分代码如下:

  然后注册一个新的账号来测试账号注册功能。点击申请账号,系统会跳转到注册界面,填完详细信息后,点击注册,系统会提示注册成功,并分配给一个账号,如图4-2所示:

  图4-2用户注册图



  部分关键代码:

  在数据库中可以看到已经存在1037吉涛这个用户账户,如图4-3所示

  图4-3数据库用户信息表、



  部分关键代码:

  注册成功后,登陆主界面,跳转至用户主窗口,如图4-4所示:

  图4-4用户主窗口



  部分关键代码:

  登录以后,可以进行查找添加好友功能测试,点击查找添加好友,将会看到查找界面如图4-5和4-6所示:

  图4-5精确查找好友界面



  图4-6高级查找好友界面

  部分关键代码:

  添加账号为1030的好友后,当对方收到你的请求后,软件会提示对方他已经成为你的好友,将搜索到的好友添加到相应的好友列表中备注,如图4-7和图4-8所示:

  图4-7添加好友成功



  图4-8设置好友信息



  部分关键代码:

  在搜索栏中查找好友并且添加进去就会在好友列表中找到他,如图4-9所示:

  图4-9好友列表



  添加完好友后,打开聊天框就可以发送消息,如图4-10所示:

  图4-10聊天界面



  进入聊天界面,用户可以通过改变字体和颜色来彰显自己的个性,如图4-11所示:

  图4-11字体选择



  登陆功能测试:使用中未出现乱码的现象并且在使用中软件的反应速度良好。

  部分关键代码:

  第五章系统的测试

  5.1测试的目的和意义

  软件系统的调试是检验一个设计的成功与否,因此在程序调试环节需要进行问题的解决和程序的调试来完成程序运行的效果检验。

  软件是一项非常重要的任务,该系统旨在避免错误。程序执行的界面会自动通知并要求立即更改,否则将无法执行[12]。

  作为一名开发设计人员,我们不仅要满足客户的功能需求,还需要保证开发出的系统的鲁棒性,要让系统能够在各种环境下运转而不出现问题。不管用户怎么对系统进行操作都不能让系统崩溃,这就需要在系统的设计过程中,深入了解用户的需求来进行功能的分析,并对系统进行模块化设计,在降低系统的耦合性的同时提高系统的内聚性,来尽可能的减少和避免系统出现的BUG。任何一个系统开发完成以

原文链接:http://www.jxszl.com/lwqt/yzlw/356848.html