基于CS模式的聊天系统的设计与实现.docx
- 文档编号:2078179
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:47
- 大小:591.07KB
基于CS模式的聊天系统的设计与实现.docx
《基于CS模式的聊天系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于CS模式的聊天系统的设计与实现.docx(47页珍藏版)》请在冰豆网上搜索。
基于CS模式的聊天系统的设计与实现
【摘要】随着互联网的快速发展,网络聊天已经成为人们日常交流沟通的不可或缺的方式,很受人们的青睐。
同时国内外也出现了很多非常不错的聊天工具,其中应用比较广泛的有腾讯QQ、微软skype等等。
本系统使用JAVA语言并基于C/S模式进行开发。
通过Socket建立服务器与客户端间的TCP连接,服务器读取、转发客户端发来信息,并刷新用户列表。
用流程图的方式对系统使用中的注册、登录、发送信息等过程进行分析,用直接继承Thread类来实现多线程,用TCP/IP协议进行客户端与服务器端的通信,并使用网络编程的常用技术和一些软件工程的基本方法来完成聊天子系统和文件子系统的设计研发。
在分析聊天系统的具体情况后,本系统采用Eclipse为基本开发环境并使用java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行的系统。
【关键词】局域网聊天SocketJAVA
DesignandImplementationof
ChatSystembasedonC/Smodel
【Abstract】AlongwiththefastdevelopmentofInternet,networkchathasbecomeindispensabletoPeople'sDailycommunication,isverypopularwiththepeople.Atthesametimealsoappearedalotofverygoodchattoolsathomeandabroad,iswidelyusedinithaveTencentQQ、Skypeandsoon.ThissystemismainlybasedontheJAVAlanguageandC/Smodeofdevelopment.TheserverisestablishedthroughtheSocket,theservercanreadanddelivertheinformationwhichclientsidesends,andcanrenovatetheuserstabulation.WiththeLANcorrespondencemechanismprinciple,throughinheritingtheThreadkindtoestablishthemultithreadingdirectly.Inthedevelopment,itusestheelementarytheoryknowledgewhichthecomputernetworkprogrammeforexample,TCP/IPagreement,Client/Serverpattern,networkprogrammingdesignmethodandsoon.Inthenetworkprogramming,itrealizesreadingandtransmissionoftheinformation,thatis,informationflowsrealizetheinformationexchange,introduceinformationflowanalysisforrealizingasystem,inwhichcontainssomebasicsoftwareengineeringmethods.Afteranalyzesthesesituations,thissystemtakesEclipseasthebasicdevelopmentenvironmentandcompilesinjavalanguage.first,itwillestablishthesystemapplicationprototypeinashorttime.then,fortheinitialprototypesystem,itneedsconstantlyrevisedandimproved,untilaviablesystem.
【Keywords】LANChatSocketJAVA
第一章绪论
1.1课题来源
根据当前网络的需求,网络聊天越来越受各种网民所青睐。
因此开发网络聊天是相当有必要,通过聊天系统,不仅可以提高访问量,同时可以留着访客,更重要的是让访客透过聊天系统实时的互相交流。
而本人也学习过JAVA语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,本人就决定以“基于C/S模式的聊天系统的设计与实现”为毕业设计,希望通过这一次的能进一步提高本人的网络开发编程的能力。
1.2国内外现状
Java是Sun公司开发的一种面向对象的新一代网络编程语言。
它可以在各种不同的机器,操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。
Java摒弃了C++中各种弊大于利的功能和许多很少用到的功能,用Java开发的程序可以在网络上传输,并运行于任何装有Java虚拟机的客户机上,并且Java虚拟机可以在Sun公司的主页上免费下载安装。
Java语言具有以下特点:
简单性,面向对象,分布性,可靠性,安全性,体系结构中立,可移植性,解释执行,高性能,多线程和动态性。
Java语言的特性使它可以最大程度的利用网络。
近几年以来,即时通信成为互联网和电信行业最激动人心的热点。
2004年6月,行业的主导服务商腾讯在香港成功上市。
7月,网易在北京推出了新版的即时通讯软件网易泡泡2004,新浪斥资近两亿元收购UC即时通讯技术平台,搜狐也推出即时通讯软件“搜Q”。
作为电信运营商的中国电信和中国网通也动作频频。
在国外,互联网行业引人瞩目的新星GOOGLE据传也推出了自己的即时通信,全球即时通信行业的老大ICQ也进入中国市场,即时通信行业发展迅速,2011年行业增长率达到50%,已经形成了收入规模为10亿人民币的不可忽视的市场。
目前国内面向个人的即时通信产品主要为腾讯QQ,微软MSN,网易泡泡,搜Q,新浪UC,ICQ,雅虎通,IMU以及电信的VIM等;面向企业用户的即时通信产品比较多,但是除了腾讯,微软等少数运营商用户比较多以外,其他的推出时间很短,用户极少,市场有待开发。
现在中国即时通信市场的竞争格局中,腾讯一支独秀,占据80%以上的市场份额。
虽然目前绝大多数互联网用户都同时为即时通信用户但是随着互联网尤其是宽带用户数的迅速增长,未来若干年内,中国即时通信用户数量还会猛增。
即时通信的安全性和互连互通成为即时通信产品发展的主要制约因素。
1.3研究的目的及意义
现在,企业、机关、学校纷纷建立起自己的局域网。
在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。
于是就想到做一个在局域网里的多功能聊天软件,在局域网里,我们可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,音频聊天,视频聊天等。
在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间的相互联络,这样,不用上Internet,还可以节省资源,在学校这个大环境里,可以方便同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,或教师讨论问题。
并能最大限度地利用现有的网络资源,极大地提高工作效率。
信息交流是互联网提供的主要内容,网络通信系统有多种实现方式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登录统一的聊天服务器。
考虑到要可以在局域网中应用,本系统使用的是第二种方法,经过设置,在局域网或internet上都可以使用。
第二章需求分析
2.1系统定义
聊天系统的出现在一定程度上满足了人们对网络即时通信的要求,那么本系统作为一个简单的应用系统,为人们使用网络通信和对即时通信有需求的人提供服务。
另外采用C/S模式的原因是C/S模式的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
2.2可行性分析
1)经济可行性:
本系统需要一个MySQL数据库,由于使用人数比较少,安装一个免费的MySQL数据库完全满足需要,所以成本就不用考虑了。
2)操作可行性:
只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。
3)技术可行性:
本系统是基于C/S模式,使用java语言实现的。
开发这个系统需要开发者对socket编程和javaSwing这两方面的技术比较熟。
由于本人长期从事于java语言编程,所以技术方面是可行的。
综上所述,此聊天系统的设计是可行的。
2.3功能需求
本系统要实现的功能如下:
1)注册
服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过JDBC-ODBC与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。
客户收到服务器返回的信息后,便打开主登陆窗口。
2)登陆
在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JDBC-ODBC读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。
然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的呢称,号码。
3)私聊
私聊就是两个聊天。
客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。
例如服务器接收到一个A发给B的消息,先判断B是否已经在线,如果在线就将信息发送过去。
B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。
4)群聊
群聊,就是多人一起聊天。
过程与私聊差不多。
唯一的不同就是服务器会将信息转发给指定群的所有成员。
5)创建分组
用户注册以后默认的好友分组只有一个。
用户在执行添加分组操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。
服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的分组信息插入到数据库中。
如果成功,则返回这个分组的信息给客户端,否则返回错误提示信息。
6)创建群
用户注册以后群个数为0。
用户在执行添加群操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。
服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的群信息插入到数据库中。
如果成功,则返回这个群的信息给客户端,否则返回错误提示信息。
7)查找好友并加为好友
输入要查找的用户ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。
打开一个用户信息显示界面,该界面会提供一个“添加为好友”按钮,点击后可将此人加为好友。
如果未找到,弹出一个信息提示框。
8)查找群并加入群
输入要查找的群ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。
打开一个群信息显示界面,该界面会提供一个“加入此群”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CS 模式 聊天 系统 设计 实现