王亮毕设.docx
- 文档编号:18579521
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:28
- 大小:373.63KB
王亮毕设.docx
《王亮毕设.docx》由会员分享,可在线阅读,更多相关《王亮毕设.docx(28页珍藏版)》请在冰点文库上搜索。
王亮毕设
廊坊师范学院
本科毕业论文
学号:
09040242027
姓名:
王亮
年级:
2009级
专业:
计算机科学与技术
论文题目:
基于socket即时聊天
系统的设计与实现
指导教师:
杨晓光
廊坊师范学院本科生毕业论文(设计)
论文题目:
基于socket的即时聊天系统的设计与实现
论文摘要:
网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。
目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。
该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。
前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。
后者通过与服务器建立连接,来进行客户端与客户端的信息交流。
其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。
开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。
在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。
经过分析这些情况,该聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。
关键词:
即时通讯系统C/S,Socket,Swing。
Title:
TheDesignandImplementationofInstantMessagingSystem
Abstract:
AlongwiththefastdevelopmentofInternet,thenetworkchatingtoolhasalreadybecomeonekindofimportantcommunicationtoolsandreceivedmoreandmorewebcamsfavor.Atpresent,manyextremelygoodchatingtoolshaveappeared.forexample,Netmeeting,QQ,MSN-Messagerandsoon.Thissystemdevelopmentmainlyincludestwoaspectsoftheserverprocedureofthenetworkchatandthecustomerprocedureofthenetworkchat.TheformerestablishestheserverthroughtheSocket,theservercanreadanddelivertheinformationwhichclientsidesends,andcanrenovatetheuserstabulation.Thelattermakeaconnectionwiththeserver,carriesoncommunicationbetweentheclientsideandtheclientside.WiththeLANcorrespondencemechanismprinciple,throughinherittingtheThreadkindtoestablishthemultithreadingdirectly.Inthedevelopment,itusestheelementarytheoryknowledgewhichthecomputernetworkprogrammes.forexample,TCP/IPagreement,Client/Serverpattern,networkprogrammingdesignmethodandsoon.Inthenetworkprogramming,itrealizesreadingandtransmissionoftheinformation,thatis,informatonflowsrealizetheinformationexchange,introduceinformationflowanalysisforrealizingasystem,inwhichcontainessomebasicsoftwareengineeringmethods.Afteranalyzesthesesituations,thischatingtooltakesEclipseasthebasicdevelopmentenvironmentandcompilesinjavalanguage.first,itwillestablishthesystemapplicationprototypeinashorttime.then,fortheinitialprototypesystem,itneedsconstantlyrevisedandimproved,untilaviablesystem.
Keywords:
InstantMessagingSystem,C/S,Socket,Swing.
目录
第1章绪论1
1.1系统开发背景及意义1
1.2研究论文内容1
1.2.1即时通信原理1
1.2.2swing技术2
1.3可行性分析2
1.3.1技术可行性2
1.3.2经济可行性2
1.3.2硬件可行性2
第2章需求分析2
2.1系统基本功能分析3
2.2系统的非功能性需求7
2.2.1正确性要求7
2.2.2健壮性要求7
2.2.3精度要求7
2.2.4易用性要求7
2.2.5安全性要求7
2.2.6时间特性要求8
第3章系统设计8
3.1系统总体设计原则8
3.2系统设计思想8
3.2.1c/s设计模式介绍8
3.3数据库设计9
3.3.1数据库表设计9
3.4系统类设计10
第4章系统实现12
4.1系统开发技术介绍12
4.2系统开发工具介绍13
4.3系统主要功能的实现13
4.3.1注册功能的实现13
4.3.2登录功能的实现14
4.3.3聊天功能的实现15
4.3.4密码修改的实现17
4.3.5用户管理的实现18
第5章软件测试与分析19
5.1系统测试的目的及意义19
5.2软件测试的常用方法20
5.3测试环境20
5.4测试总结20
第6章结束语21
参考文献22
致谢24
第1章绪论
1.1系统开发背景及意义
随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。
目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。
无论是个人还是企业等组织机构,对沟通的需求也在不断发展,传统的电话、传真、邮件等沟通方式显然已无法满足当今人们工作和生活沟通的需要。
随着软件、网络和通讯三大现代信息技术的发展,在沟通、协作方面有着更多方便、快捷、实时等优势的即时通讯,成为继电话、E-Mail之后又一个完全融入每个人生活的互联网工具。
Java是一个由Sun公司开发而成的新一代编程语言。
使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。
不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持Java”,你就可以看到生动的主页。
Java正在逐步成为Internet应用的主要开发语言。
它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。
1.2开发目的和意义
网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行即时的信息交流。
比如说QQ聊天工具,它就是利用网络通信技术开发的一款众所周知的网络聊天工具。
通讯工具最初虽为聊天而诞生,但其作用早已超出了聊天的范畴,随着企业即时通讯工具的出现,即时信息在网络营销中将发挥更大的作用。
目前,信息交流是互联网提供的主要内容,网络通信系统有多种实现方式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登录统一的聊天服务器。
考虑到要可以在局域网中应用,本系统使用的是第二种方法,经过设置,在局域网或internet上都可以使用。
1.2论文研究内容
1.2.1即时通讯原理
首先验证登陆,如果成功,则建立与服务端的socket连接,服务端新开启一个线程专门为它服务,将打包好的Message发送给服务器端,服务器端根据Message里面的信息,再将信息转发给其他用户。
一个标准的C/S模式。
1.2.2Swing技术
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
用来实现客服端的界面设计。
1.3可行性分析
本系统的可行性分析包括以下几个方面的内容:
1.3.1技术可行性
使用Swing和Socket技术,可以很轻松地开发出实用、简便、高效的基于网络的即时通讯系统。
因此技术上是可以实现的。
1.3.2经济可行性
计算机网络已经普及,因此在网络设备上不需要进行大的投入。
本系统需要JavaJRE环境,由于并发使用人数比较少,所以成本很低。
1.3.3硬件可行性
只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。
如果要实现internet上通讯,只需要将服务器端运行在一个有固定IP的公网上就可以。
综上所述,即时Java即时通讯系统是可行的。
第2章需求分析
2.1系统基本功能分析
通过对即时进行需求分析,可以确定聊天系统系统主要有两类用户:
客户端普通用户,系统管理员。
每类用户实现的功能各不相同,下面分别针对每类用户介绍系统的功能。
一.客户端普通用户可以在用户端客户端可以实现注册,登录,在线好友查看,查看后台系统信息发布,与好友即时聊天,修改密码。
用户的用例图如下图所示:
图表2-1用普通用户的用例图
2.系统管理员可以可以在服务器端进行关闭/开启服务器,查询用户信息,增加用户,删除用户,修改用户信息,发布系统消息,强制用户下线功能。
系统管理员的用例图如下图所示:
图表2-2系统管理员用例图
通过对系统功能的进一步分析,可以得到各个用例的详细描述。
由于系统用例过多,现选取用户注册、用户登录,管理员查看用户等几个系统主要用例进行详细描述。
如下表所示。
表2-3用例描述表
用例名称
用例描述
用户登录
Ø用例说明:
用户对登录系统功能的使用
Ø前置条件:
系统运行正常
Ø基本事件流:
1.用户在客户端发出登录请求
2.客户端显示登录窗口
3.用户输入用户名和密码
4.服务器端进行用户验证
5.客户端显示用户登录后窗口
Ø次要事件流:
4.1.1用户输入的用户名或密码不正确
4.1.2系统给出相应提示
4.1.3返回基本事件流2
Ø后置条件:
系统准备处理下一个用户请求
用户注册
Ø用例说明:
用户实现注册功能
Ø前置条件:
用户已成功登录系统且系统运行正常
Ø基本事件流:
1.用户向客户端发出注册请求
2.客户端向用户显示注册窗口
3.用户填入注册所需信息提交注册
4.客户端对提交信息进行判断
5.客户端向用户显示注册成功
Ø次要事件流:
4.1.1提交信息不符合要求。
4.1.2系统给出提示
4.1.3返回基本事件流2
后置条件:
无
管理员
查看用户
Ø用例说明:
系统管理员实现查看用户功能
Ø前置条件:
服务器系统运行正常
Ø基本事件流:
1.管理员向系统发出查看用户请求
2.系统检索所有用户
3.系统向用户显示用户信息
Ø次要事件流:
2.1.1当前系统中无此用户
2.1.2返回基本事件流1
Ø后置条件:
无
密码修改
Ø用例说明:
用户实现修改密码功能
Ø前置条件:
用户成功登录系统
Ø基本事件流:
1.用户向系统发出修改密码请求
2.系统提示管理员输入原密码和新密码
3.用户输入原密码和新密码
4.系统验证用户输入是否为空
5.系统验证原密码是否正确
6.系统处理用户修改密码请求
7.系统向用户显示密码修改成功的消息
Ø次要事件流:
4.1.1用户输入的原密码和新密码中至少存在一项为空
4.1.2系统提示用户新密码或原密码为空
4.1.3返回基本事件流2
5.1.1用户输入的原密码不正确
5.1.2系统提示用户原密码不正确
5.1.3返回基本事件流2
Ø后置条件:
密码修改成功
用户即时聊天
Ø用例描述:
用户实现即时聊天功能
Ø前置条件:
用户成功登录系统
Ø基本事件流:
1.用户向系统发出好友聊天请求
2.系统向用户显示聊天界面
3.用户输入信息并提交
4.系统收到提交信息并转发。
5.系统显示所发信息
6.一次好友通信结束。
Ø次要事件流:
4.1.1好友不在线
4.1.2系统给出好友不在线的的提示
4.1.3返回基本流1
Ø后置条件:
无
2.2系统的非功能性需求
2.2.1正确性要求
系统能够正确地将用户分为普通用户和系统管理员两类,并能够分类处理每类用户的请求。
系统应能够准确获取外部信息以及用户操作,并进行正确的数据处理,最后将结果存入数据库中。
用户在实时聊天过程中,要求系统对用户好友是否在线做出正确判断并给出相应提示信息。
2.2.2健壮性要求
该系统部署后,在硬件条件和支持软件条件没有发生变化的情况下,能够一直保持运行状态,直到系统被升级或替代。
本系统出现的错误多为数据库错误,应经常对数据库进行备份,必要时能够采取数据库恢复措施,解决系统出现的问题,保证系统正常运行。
2.2.3精度要求
系统处理的主要信息为用户,管理员两类用户的信息涉及到用户的好友种类信息,对数据精度无特殊要求。
2.2.4易用性要求
界面要求清晰醒目、布局合理、功能明确。
对各个功能辅以已让使用者容易接收的图标,并用色彩的区别加以提示,是使用者能够快速、准确的掌握正确使用该系统的方法和技巧。
对电脑使用熟练的用户适应操作方法所需时间不超过半个小时,知道电脑基本操作的用户经过简单培训,一小时就可以熟练掌握软件的使用方法。
2.2.5安全性要求
本系统不影响其他软件的正常运行,而且不会被人故意修改或植入恶意程序。
不会造成内存泄露,数据丢失等问题。
应能够保证用户数据和账号的安全。
2.2.6时间特性要求
对于信息查询操作,考虑到网络数据传输速度的影响,系统应在5秒之内给出结果。
对于其他操作,系统应在3秒内给出处理结果。
第3章系统设计
3.1系统总体设计原则
本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。
其主要设计原则有:
简单性:
在实现系统的功能的同时,尽量让系统界面简洁清晰、操作简单易懂,这对于一个系统来说是非常重要的。
针对性:
本系统设计是针对普通用户的需求定向开发设计,所以具有专业突出性和很强的针对性。
实用性:
要求本系统能够满足用户好友通信的需要,因此具有良好的实用性。
一致性:
页面整体设计风格以及命名规则的一致性:
整体框架和用图用色风格及变量、类名和其他元素的命名规则保持一致。
功能一致性:
完成同样的功能应该尽量使用同样的元素。
元素风格一致性:
界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。
变量命名规则的一致性:
变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。
3.2系统设计思想
3.2.1C/S设计模式介绍
C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。
C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。
功能的分布在于减少计算机系统的各种瓶颈问题,
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快
图3-1基于Socket的C/S模式系统实现图
3.3数据库设计
数据库设计是系统设计中非常重要的一个环节。
数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作。
3.3.1数据库表设计
本系统中所涉及的主要实体及其属性有:
用户(用户账号,用户姓名,密码,头像ID,年龄,性别,地址,电话)
E-R模型如图所示。
图3-2系统实体及其属性
表3-3User
字段名
数据类型
字段说明
键引用
备注
account
int(6)
ID
PK
主键
name
varchar(20)
用户名称
非空
password
varchar(20)
用户密码
非空
profileID
int
(2)
头像ID
age
int(3)
年龄
sex
sexchar
(2)
性别
tel
Varchar(255)
电话
adress
varchar(20)
地址
表3-4nation
字段名
数据类型
字段说明
键引用
备注
nation
varchar(20)
国籍
PK
主键
3.4系统类设计
Server.Java
方法名
作用
publicvoidrun()
开启服务器监听
publicvoidclose()
关闭服务器监听
publicvoidsend(Objecto)
发送消息
publicObjectreceive()
接收消息
Login.java
方法名
作用
publicvoidloginuiinit()
初始化登录界面
Voidlbutton-actionPerformed(ActionEvente)
处理用户登录请求
Register.java
方法名
作用
publicvoidregistuiinit()
初始化注册界面
lbutton-actionPerformed(ActionEvente)
处理用户注册请求
MessageSend.java
方法名
作用
lbutton-actionPerformed(ActionEvente)
发送消息
Result.java
方法名
作用
Getuserlist()
以列表的形式显示用户
modifypassword.java
方法名
作用
Modifypassword()
修改密码
第4章系统实现
4.1系统开发技术介绍
结合本系统开发的特点,我采用MicrosoftSQLServer2005做后台数据库管理系统,同时我又选择了功能强大的Java语言作为开发工具,利用软件工程的思想和方法,总体上先采用结构化生命周期法进行系统分析与设计,然后采用快速原型法来实现本系统。
本系统采用java语言,是因为Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
它具有简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等特性。
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。
JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。
但JVM通常是在软件上而不是在硬件上实现。
系统采用MicrosoftSQLServer2005做后台数据库管理系统则是因为SQLServer2000可信任度非常高,使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。
同时它是高效智能的,使得公司可以降低开发和管理他们的数据基础设施的时间和成本,并且提供了一个全面的平台,可以在用户需要的时候给他发送信息。
4.2系统开发工具介绍
开发过程中,主要要用到的开发工具(如表1-1所示)。
表4-1开发工具简介表
工具名称
工具介绍
myeclipse
是一个十分优秀的用于开发Java,支持J2EE开发,eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
Jdk1.6
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。
JDK是学好Java的第一步。
SQLServer2005
一种稳定的数据库管理系统,适合大型项目开发。
Photoshop
集图像扫描、编辑修改、图像制作、广告创意,图像输入与输出于一体的图形图像处理软件,用于一些前台界面,文档中所需图片的处理。
4.3系统主要功能的实现
本系统可分为登录、聊天、修改密码,用户管理和注册五个功能模块。
“登录”模块为用户提供登录界面,并在用户登录显示好友列表;“聊天”模块实现用户的即时传送信息,即用户即时聊天,可以发送文字;“修改密码”模块主要实现一用户修改密码功能。
下面详细介绍各个模块的具体实现。
4.3.1注册功能的实现
用户在服务器端点击注册按钮,系统显示注册界面,用户填写注册信息并提交,系统验证信息无误将信息存入数据库,系统显示注册成功信息。
图4-2用户注册流程图
图4-3用户注册界面图
4.3.2登录功能的实现
用户向系统发出登录请求,系统显示登录界面,用户输入登录信息,系统验证用户登录信息,如无误进入好友列表界面。
图4-4登录流程图
图4-5登录界面图
4.3.3聊天功能的实现
用户进入好友列表界面向系统发出好友聊天请求,系统验证好友是否在线,若在线系统将显示聊天界面,用户输入聊天信息,系统将聊天信息转发给好友并显示发送信息内容。
图4-6聊天流程图
图4-7聊天界面图
4.3.4密码修改的实现
用户向系统发出密码修改请求,系统显示密码修改界面,用户填写密码信息并验证,若无误将新密码写入数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 王亮毕设