基于CS结构的聊天室系统的设计毕业设计论文.docx
《基于CS结构的聊天室系统的设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于CS结构的聊天室系统的设计毕业设计论文.docx(42页珍藏版)》请在冰豆网上搜索。
基于CS结构的聊天室系统的设计毕业设计论文
基于C\S结构的聊天室系统
摘要
计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。
尤其是,随着信息时代的来临,人们之间愈来愈趋向于通过网络来交流和传递信息。
而聊天系统正是当前人们使用最多的中介。
在这个平台上,许多认识或不认识的人们彼此间能够随意的相互交交流。
因此,开发和架构这种平台符合时代发展的需要。
论文首先对目前国内国际方面的状况进行初步的介绍,接下来详细的介绍了本设计用到的主要技术及相关内容,以下按照软件工程的思想对系统进行调研,技术可行性分析,需求分析及总体设计与功能模块划分。
接着是详细设计按照不同的模块有侧重的分析,诸如客户端与服务器的通讯,客户端与客户端的通讯,涉及到本设计主要的流程,用流程图加以说明,并有文字说明。
本设计主要采用了黑盒测试与其他设计相结合的方法。
主要测试系统是否能完成基本的功能,当输入错误的信息时,提示信息是否合理;发送信息、接收信息是否按预想的设计进行;界面的合理、整洁性。
黑盒测试是从用户的角度出发的一种比较好的测试方法。
本设计分为四章,第一、二章是绪论与文献综述,介绍了本课题的来源背景、研究和解决的问题以及对社会发展的作用。
第三、四章提出了解决问题的方案以及提出具体的方法实现该系统的功能,这两章是最重要的部分。
第五章是本设计的结果与评价,对此系统在整体上进行测试,并做出客观的评价。
最后是致谢和参考文献,对此设计有帮助的人表示感谢以及自己所参考的重要文献。
关键词聊天系统;TCP/IP协议;JSP
Abstract
Therapiddevelopmentofthecomputernetworkshasbeenmakingagreatinfluenceinmanyfieldsofhumansociety.Inparticular,alongwithinformationageapproaching,peopletendtoincreasinglycommunicateandtransmitinformationthroughthenetwork.Butthechatsystemispreciselyusedbypeopleasanintermediary.Onthisplatform,peoplecanchateachotheratrandomwhethertheyknowornot.Therefore,thiskindofplatformdevelopedandconstructedconformstodemandingofthetime.
Firstthepapersintroducethecurrentdomesticandinternationalsituation.Next,themaintechnologyandtheconnectedcontentareintroducedindetail.Followingistheinvestigationandstudyaccordingtothesoftwareengineeringthoughttothesystem,thedemandanalysisandthesystemdesignandthefunctionmodule.Nextisthedesignwhichisaccordingtothedifferentmoduletheanalysis,suchasclientandservercommunications,clientandtheclientcommunications.Inthispartalsohasthedesignofthemainflow,andflowchartstoillustrateandtextdescription.ThemaindesignmainlyusestheBlack-boxdesignandthecombinationofdifferentmethods.
Thefifthchapteristhisdesignresultandtheappraisal,regardingthissystematicallycarriesonthetestinthewhole,andmakestheobjectiveappraisal,studyingandsolvingproblemandthefunctionofthesocialdevelopment.Finallyistheacknowledgmentandthereference,regardingthisdesignshasthehelppersontoexpressthanksaswellasownreferimportantliterature.
KeywordsC/S;chatingsystem;TCP/IPprotocol;JSP
第1章绪论
1.1课题研究背景
随着Internet的普及和宽带技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。
与此同时,一个新型的Web应用程序为网民之间提供了一个实时互通信息的功能和场所,这就是聊天室。
相信经常上网的朋友对聊天室一定不陌生。
早在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。
聊天室为网友提供了实时性对话的管道,是网络上极为流行的一项服务。
聊天室适用于网上会议或闲聊的场合。
聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是“网上交友”之所以如此热门的原因。
1.2基本技术支持
1.2.1ASP简介
MicrosoftActiveServerPages即我们所称的ASP,其实是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0和4.0之中,通过ASP可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
ASP技术的出现,使动态交互式Web主页设计成为一件轻松愉快的工作。
只要几行脚本语句,就能将后台的数据库信息发布到Internet/Intranet上,在编程和网页脚本的可读性方面大大优于传统的技术方案。
ASP是ActiveServerPages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。
ASP可以胜任基于微软Web服务器的各种动态数据发布。
把信息系统纳入Internet/Intranet的框架之后,首先要解决的问题是通过网页访问后台数据库信息。
所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web站点具有很强的动态数据发布能力。
然而,目前Web的服务,仍以提供“静态”主页内容为主。
所谓“静态”,指的就是站点的主页内容是“固定不变”的,无法根据用户的需求和实际情况做出相应的变化。
当浏览器通过Internet的HTTP协议向站点的Web服务器申请主页时,站点服务器就会将已设计好的静态的HTML文件传送给浏览器。
若要更新主页的内容,只能用非在线的手动方式更新HTML的文件数据。
ASP所设计出的是动态主页,可接收用户提交的信息并做出反应,其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。
例如:
当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。
该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。
数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。
在结构关系上,ASP是通过ODBC与数据库打交道。
因此,向上层可兼容各类数据库系统。
而对于下层,ASP产生的HTML对客户端 的浏览器又有广泛的适应性。
但ASP对Web服务器本身有所挑剔,这看起来似乎是一种缺陷,而实际上也许是一种商业策略——它只支持微软各种操作系统下的Web服务器,ASP的安装分为WindowsNT和Windows95两种情况。
对于NT,IIS及ActiveXServerPages都包含在ServicePack3中;对于Win95,可使用VisualStudio服务器构件下的ActiveXServerPages安装选项。
安装成功之后,在程序管理器中会找到一个ActiveXServerPagesRoadmap主页,引导你学习和使用ASP[1]。
从软件的技术层面看,ASP有如下的特点:
1、无需编译ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。
2、易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。
若从工作效率来考虑,不妨选用具有可视化编辑能力的VisualInterDev。
3、独立于浏览器用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。
ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。
因此,若不通过从服务器下载来观察*.asp主页,在浏览器端见不到正确的页面内容。
4、面向对象在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveXServerComponent(ActiveX服务器组件)来扩充功能。
5、与任何ActiveXscripting语言兼容除了可使用VBScript和JScript语言进行设计外,还可通过Plugin的方式,使用由第三方所提供的其它scripting语言。
6、源程序码不会外漏ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。
从应用的层面看,ASP有如下的功能:
1、处理由浏览器传送到站点服务器的表单输入。
2、访问和编辑服务器端的数据库表。
使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。
3、读写站点服务器的文件,实现访客计数器、座右铭等功能。
4、提供广告轮播器、取得浏览器信息、URL表管理等内置功能。
5、由cookies读写用户端的硬盘文件,以记录用户的数据。
6、可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。
7、使用VBScript或JScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。
通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。
8、扩充功能的能力强,可通过使用VisualBasic、Java、VisualC++等多种程序语言制作ActiveXServerComponent以满足自己的特殊需要[2]。
1.2.2HTML简介
HTML(HyperTextMarkupLanguage超文本标记语言)是一种用来制作超文本文档的简单标记语言。
用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。
自1990年以来HTML就一直被用作WorldWideWeb上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。
HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。
生成一个HTML文档主要有以下三种途径:
1、手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。
2、通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。
3、由Web服务器(或称HTTP服务器)一方实时动态地生成。
HTML语言是通过利用各种标记(tags)来标识文档的结构以及标识超链(Hyperlink)的信息。
虽然HTML语言描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而只是建议Web浏览器(如Mosaics,Netscape等)应该如何显示和排列这些信息,最终在用户面前的显示结果取决于Web浏览器本身的显示风格及其对标记的解释能力。
这就是为什么同一文档在不同的浏览器中展示的效果会不一样。
目前HTML语言的版本是2.0,它是基于SGML(StandardGeneralizedMarkupLanguage)标准广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变而来的。
虽然下一版本的标准HTML3.0(也称为HTML+)正在制订之中,但其中某些部分的实验性标准草案已被广泛采用,大多优秀的Web浏览器(如Netscape等)都能解释HTML3.0中的部分新标记,因此在本章中介绍的一些HTML3.0新标记均已被多数浏览器所接受[3]。
第2章需求分析
2.1功能需求
通过聊天室,用户可以自定义个人的数据,可以以各种不同的身份实时发送聊天信息,可以指定聊天的对象,发送的信息也可以进行各种设置,甚至还可以设置聊天的表情和贴图。
功能更为强大的聊天室不仅提供了普通的文字功能,还支持视频和音频聊天、传送文件等功能。
聊天室的特点就是要求能够实时心事出聊天者所谈的内容。
所谓“实时”就是指在同一个聊天室的使用者,可以在短时间内立刻看到其它人的发言,这与网络上常见的留言板和讨论区有很大的不同。
现在用ASP可以快速、简便的设计出一个可以互相对话的典型聊天室程序,几十行的HTML代码加上ASP程序,就可以快速的构建出最基本的聊天室了。
但是想让聊天室功能更强大,吸引更多的网友,还是需要花一番心思的。
网上聊天室作为用户最喜欢的Web应用程序,其特点就是强调信息的实时性和信息发布方式的多样性。
从功能上讲,网上聊天室系统与论坛的系统非常相似,但聊天室系统有自己的特点,它强调信息的实时性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。
2.2性能需求
开发一个完整的聊天室要用到很多知识。
在开发以前首先要知道自己开发的程序要满足哪些要求及实现的功能是什么。
设计一个功能完善的聊天室系统,工作量是非常庞大的,但设计时一般有以下几个问题需要特别注意。
在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示实时谈话内容应以什么方式存储在服务器中。
ASP可以用三种形式实现聊天内容的存取:
1、用全局变量Application和Session对象实现。
这种形式速度快、效果好,但系统资源消耗太大。
2、用读写数据库方式实现。
这种方法就相对比较简明,但服务器频繁读写数据库负担很重。
3、用读写文本文件完成。
这种方法适合简单的聊天室。
由于ASP对文本文件操作的指令远不如ADO提供的对数据库操作的指令多,所以利用ADO,ASP能灵活地操作数据库,如插入、删除、更新、查询等。
本设计选择了Access数据库来存储谈话的内容。
聊天室设计性能好坏的另一个重要的标志就是聊天室成员的动态刷新。
因为许多用户在退出聊天室的时候,并不是标准的退出,也就是说并不是从“退出”链接退出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。
因此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言已经超时,如果超时就自动将该用户删除。
但是每次用户发言的时候,必须把发言时间写入数据库。
2.3可行性分析
2.3.1技术可行性
随着计算机软件的发展,计算机硬件的逐渐优化,结合网络技术的不断深入,各个商家为了争夺在市场上的有利地位,都不断地发展更加能够面向更多平台的语言与技术。
人们的相互沟通,必然会导致大家向着同一个方向发展,这必然要求有统一规范的标准的出台。
而对数据库的操作,安全、适合更多的应用以及更强大的功能提出了更高的要求。
本聊天工具使用了多线程。
一旦服务器发现一个新的客户端与之建立连接,就马上新建一个线程与该客户端进行通信。
用多线程的好处在于可以同时处理多个线程连接,不会出现由于数据排队等待而发生的延迟或者丢失,可以很好地利用系统的性能。
服务器为每一个连接着的客户建立一个线程,为了同时响应多个客户端,需设计一个主线程来启动服务器端的多线程。
主线程与进程结构类似,它在获得新连接时生成一个线程来处理这个连接。
线程调度速度快,占用资源少,可共享进程空间中的数据,因此服务器的响应速度快,且I\O吞吐量较大。
多线程使应用程序可以同时进行不同的操作,处理不同的事件。
在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。
2.3.2操作可行性
网络聊天系统并不是一个很复杂的软件,不需要专业人员的指导,就像使用QQ软件一样。
由于现代网络发展以及信息更新速度加快,所以需要企业组织内部以最快的速度获取信息然后传播开来,信息扩散的迅速话必须要求工作节奏的快速化。
信息量获取得快慢与否及丰富与否都决定了个人乃至公司的发展。
召开会议、下达指示、发送消息等,即时聊天系统都必不可少。
加之界面设计的简约化,操作的简易化,在公司、企业内部应该是行得通的。
系统是为一个团体设计的,考虑到了个人的方面。
综合考虑,工具能够使每个操作者得心应手。
2.3.3经济与技术可行性
我们在开发过程中用到两台电脑,80G硬盘,512M内存,因特尔微处理器,ADSL连接外网。
WindowsXP操作系统,员工两人,开发时间一个季度。
可完全承担开发任务,能够通过较小的投入得到较大的回报。
因此以达到经济可行性需求,能够有比较理想的回报。
系统的使用将在用户与企业之间,工作人员与工作人员之间建立有效的沟通渠道,避免了更多的烦恼以及不便因素。
从以往的杂乱无章到以后的有条不紊,环境的改观会引起一系列的其他方面的改观,诸如员工的工作动力,办公环境的改观,这些因素都是企业办公中不可忽视的。
由此引起的办事效率的提高,沟通的增强,团队的和谐,将会直接带来经济效益的提高,引导企业走向前发展的道路。
第3章总体设计
本聊天工具采用客户机/服务器(C/S)的模式来设计,是一个3层的C/S结构:
数据库服务器应用程序服务器应用程序客户端。
3.1软件运行环境设计
为了保证系统运行的效率和可靠性,服务器应具有较高的软硬件配置,客户端的要求不需要太高,此应用程序可广泛运行于Internet,也适用于内部的局域网。
运行要求如下:
软件环境
1、客户端:
Windows98、InternetExplorer4.0以上版本。
2、服务器端:
Windows2000\XP,IIS5.0及其以上版本。
3、数据库:
采用Access数据库,运行于服务器端。
硬件环境
1、服务器:
CPU要求PIII800以上,内存256MB以上。
2、客户机:
CPU要求200MMX以上,内存64MB以上。
3.2功能介绍
3.2.1功能结构设计
系统的模块分别是服务器模块,用户端模块。
各模块再划分出自身相应的功能。
聊天工具按如下过程完成通信:
向服务器注册,告知服务器它在监听某主题;注册后,向服务器发送消息;服务器再把消息发送给所有监听此主题的客户。
根据网络聊天系统的模块划分,具体的层次方框图如下图3.1所示:
图3.1功能结构图
系统的总体设计对整个系统完成起到了至关重要的作用,系统的模块分别是服务器模块,用户端模块,各模块再划分出自身相应的功能。
本系统主要完成用户的注册、
用户登录、新用户注册,密码修改,用户聊天等功能,通过流程图可以很清晰的表现出它们之间的关系以及结构。
3.2.2系统模块设计
根据需求分析和性能分析,对系统各功能进行集中、分块,按照结构化程序设计的要求,本功能的系统功能模块图如图3.2所示。
图3.2功能模块图
其中用户登录功能的数据流图如图3.3所示
图3.3用户登录数据流程图
3.3数据库设计
本系统采用Access数据库为数据库开发工具,建立一个数据库zhuce,其中包括2个表。
使用的数据表有:
新用户注册表(zhuce)、在线用户表(onlineuser)。
下面介绍各个表的主要功能以及具体信息。
1、新用户注册表(zhuce)其中,user表示用户登陆的用户名;password表示登陆的密码;sex表示用户性别;email表示用户信箱;homefrom主页;qq表示oicq;ipaddress表示地址。
表3.1新用户注册表zhuce
字段.
字段名
类型
备注
可否为空
User
Password
Sex
Email
Homefrom
Qq
ipaddress
用户名
用户密码
性别
信箱
主页
OICQ
地址
Varchar(50)
Varchar(50)
Char
(1)
Varchar(50)
Varchar(50)
Varchar(50)
Char(50)
主键
0代表男,1代表女
否
否
否
否
其中,user表示用户登陆的用户名;password表示登陆的密码;sex表示用户性别;email表示用户信箱;homefrom主页;qq表示oicq;ipaddress表示地址。
2、在线用户表(onlineuser)此表记录了用户的用户编号(id)、用户名(user)以及用户地址(ipaddres)。
id为主键。
表3.2在线用户表onlineuser
No.
字段名
类型
宽度
主键
说明
1
2
3
id
user
ipaddres
Varche
Varchar
Varchar
50
50
50
1
用户编号
用户名
用户地址
第4章详细设计
详细设计是整个设计过程中,最重要的步骤之一。
下面就分以下几个部分对系统进行详细设计:
1、用户登陆模块设计
2、聊天者发言模块设计
3、显示发言信息模块设计
4、显示在线用户模块设计
4.1用户登录模块的设计
用户登录是首先进入主界面,如图4.1所示:
图4.1登陆界面
输入用户名和密码点击登录,便进入聊天界面,登录功能实现所需代码如下:
用此语句获取登录用户的用户名sUserName=request.getParameter("UserName");
用此语句获取登录用户的用户密码:
sUserPassword1=request.getParameter("UserPassword");
然后以用户名为条件查询数据库,以便判断该用户名是否存在
strSql="select*