您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > java聊天系统代码[1].doc
南华大学Java论文论文题目:c/s聊天系统专业09网络工程02班姓名曾亚平(20094360209)姓名刘明(20094360210)姓名龚泽辉20094360211)姓名郑建(20094360215)C/S聊天系统组员:曾亚平(20094360209),刘明(20094360210),龚泽辉20094360211),郑建(20094360215)任务分配:服务器端的侦听部分(刘明,龚泽辉,郑建)、服务器端(曾亚平,刘明)、客户端部分(曾亚平,龚泽辉,郑建)摘要:随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统本论文通过java的Socket实现了一个基于局域网和网络的聊天室的程序的开发---基于java的C/S模式网络聊天室的设计与实现。本论文详细介绍其设计和实现过程。关键词:聊天客户端信息服务器端用Java实现C/S聊天系统C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低基本思想是将用户界面同企业逻辑分离,把信息系统按功能划分为表示、功能和数据三大块,分别放置在相同或不同的硬件平台上。如果企业需要更改业务,开发人员只要修改一下实现此业务的中间层即可。中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件。能够使应用软件相对独立于计算机硬件和操作系统平台。人们日常生活中越来越多地使用这项新技术来为自己的工作和学习服务。一个操作简单、友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。该聊天室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室功能比较简单,但是实现了聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件、发送图片、视频聊天等尚未实现。中间件的工作机制是:客户端从网络中的某个地方获取一定的数据或服务,这些数据或服务可能处于一个运行着不同操作系统和特定查询语言数据库的服务器中。客户/服务器应用程序负责数据的部分只需访问一个中间件系统,由中间件完成到网络中找到数据源或服务,进而传输客户请求、重组答复信息,最后将结果送回应用程序的任务。其体系结构如图所示。数据库服务器发出请求或输入数据接收请求,返回数据或状态客户机客户机...远程客户机通信网络发出请求或输入数据接收结果接收结果中间件服务器组件服务器在三层C/S体系结构中:客户机仅实现业务的表示层,以及最简单的业务规则。如编号的合法性、数据是否允许空值等。负责接收客户的输入信息,并将输入信息发送给中间件服务器,客户机接收来自中间件服务器的结果信息并显示给客户。中间件服务器(组件服务器)实现大部分的客户业务规则。这些规则包括建立与后台数据库的连接,将客户机发送过来的数据按照业务规则进行分类、加工和处理,生成相应的SQL语句发送给数据库服务器,同时接收数据库服务器返回的数据或状态,并返回给客户机。在网络中可以有多台中间件服务器。为了进一步提高系统的效率,可以将企业的业务进行大类分类。同类业务规则的实现放在同一台中间件服务器上,使得企业的业务处理达到真正的分布式处理。客户机访问中间件服务器是通过其接口实现的。所有对数据库的操作封装在中间件中,因此在很大程度上保证了数据库的安全。数据库服务器的功能与C/S结构是一样的,只不过其结果数据是返回给中间件服务器,而不是客户机。三层是多层体系结构的基础,中间件服务器可以再访问中间件服务器,这样就形成了多层体系结构。多层应用程序的体系结构有很多强过客户/服务器的优点:业务规则集中、瘦客户体系结构、自动错误调和、负载平衡、可重用性、灵活性、可管理性、易维护性等一系列优良的特性。开发C/S体系结构采用的主要工具有:(1)Borland公司的Delphi7,Jbuilder2005。(2)Sybase公司的Powerbuilder10.5。(3)微软公司的VB、VF等。分析任务聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务器端的任务:1.服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。2.服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。客户端应该完成的工作包括:1.与服务器端建立通信通道,向服务器端发送信息。2.接收来自服务器的信息。相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。进一步分析系统结构。一个网络聊天室的运行,首先是要有一个完整稳定的服务器端,并且拥有很多个服务器端。客服端要具有实现用户注册和用户登陆,在登陆成功后,要显示出公聊界面,实现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一的私聊功能。在服务器端可以实现不断的监听客服的连接,并且根据客户端发送过来的不同信息如注册信息,登录信息,公聊信息,私聊信息,退出信息等,服务器端要做出不同的响应,并且要实现数据库的操作,如根据用户注册的信息保存数据库中,根据登录时发送来的用户名和密码检测是否合法用户等。完成上述分析之后,就开始对每个问题展开研究。聊天室的发展聊天室做为即时通讯的一种,即时通讯(InstantMessenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯,以及微软的MSNMessenger都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。IM软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球。在它的发展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“ISeekYou”,简称ICQ了。直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。目前,国内最为流行的即时通讯软件是OICQ(简称)。它以良好的中文界面和不断增强的功能形成了一定的网络文化。Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。作为WindowsXP的一部分,Messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。聊天室设计1.客户端功能模块·用户注册功能,实现用户的登陆ID注册和个人信息,并存入服务器数据库中。·用户登录功能,实现合法注册用户的登陆。·私聊功能,实现用户和在线的其他用户一对一的聊天方式。·公聊功能,实现用户和在线的所有用户聊天方式。·显示时钟功能。·查看聊天记录,实现用户查看已聊天的历史聊天内容。·发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。2.服务器端功能模块·可以不断的监听客户端请求·显示登陆客户的信息、当前在线人数、服务器开启状态、保存日志、用户在线列表·发送系统消息3.数据分析和设计数据库在信息管理系统中占有非常重要的地位,其设计的好坏直接影响到整个系统的效率和性能。设计数据库系统时,首先要完成系统的需求分析,包括现有的已及将来可能添加的需求,从而使整个系统具有很好的可扩展性。1、数据库需求分析2、数据库概念设计3、数据库逻辑结果设计4.聊天系统细化当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问,具体实现过程如图3-6所示。接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。普通用户登录/退出系统用户发送登录请求,客户端获取用户登录信息并发送到服务器端,服务器启动用户登录管理线程,获取用户名和密码进行登录验证,将验证结果返回客户端显示用户注册用户第一次进入聊天室时需要进行用户注册才能登陆聊天室聊天。注册流程如下:用户提出注册请求,客服端响应,弹出注册信息对话框,用户输入相关信息并提交,客户端首先进行合法检查,确定无误后将数据信息发送给服务器端。服务器接收到请求后,启动单独得线程进行处理,首先进行合法性检查,确认登录名与系统中已注册得用户登陆名不相同后更新数据,并返回信息,客服端进行显示。发言是聊天室的核心功能,用户提出发言请求,客户端接受发言的内容和其他各种设置(公聊或私聊),打包发给服务器端。服务器接收到请求后确定聊天方式。服务结果最后显示在客户端。用户的需求具体体现在各种信息的提供、保存、
本文标题:java聊天系统代码[1].doc
链接地址:https://www.777doc.com/doc-6123941 .html