欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于Java平台上聊天系统的研究.doc

    • 资源ID:848326       资源大小:634.18KB        全文页数:38页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Java平台上聊天系统的研究.doc

    1、目录摘要1引言1第1章 系统概述21.1本课题的来源21.2本课题的目的、内容、要求31.3研究意义3第2章 技术选择分析42.1 可行性分析42.2开发工具的选择52.3开发技术的选择5第3章 需求分析63.1项目概述63.2功能需求83.3质量性能需求11第4章 概要设计124.1目的124.2运行环境124.3条件与限制134.4体系结构概述134.5功能设计13第5章 详细设计及实现195.1 客户端注册205.2 登录225.3 公聊235.4 私聊245.5发送系统消息265.6字体设置275.7发送表情275.8记录保存和显示285.9 功能逻辑实现28小结29致谢29参考文献3

    2、0英文摘要30基于Java平台上聊天系统的研究摘要:网络聊天室是一种应用广泛网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想项目。可以使用多种编程语言设计和开发出功能完善的网络聊天室。本毕业设计论文介绍用JAVA语言分析与设计一个网络聊天室的过程,本系统采用C/S架构设计,整个项目分为服务器端和客户端。使用了最新的Java 2标准Swing组件,开发出简洁美观和布局合理的用户和服务器界面;通过对数据流操作的合理设计,实现信息传递、接受和数据保存。同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,

    3、如何使用Eclipse集成开发环境来创建和开发项目,从而研究系统的完整开发。关键词:聊天室;Java; Swing组件;多线程引言随着科学技术的发展和社会的进步,尤其是计算机大范围的普及,网络飞速发展的时代,网络聊天成为人们生活中不可缺少的一部分,几乎每个网民在上网的时候都会选择聊天室与虚幻世界的人们进行各种各样的交谈,聊天室对于众多网民来说并不陌生,它是网络上大家讨论交流的有效平台。随着聊天室使用的频繁,各种各样的聊天室相继出现,由于Java强大的Internet网络程序设计功能,很多聊天室服务器端都是采用Java语言进行实现,尤其是应用JAVA多线程的聊天室更为人们所关注。第1章 系统概述

    4、1.1本课题的来源中国互联网络信息中心(CNNIC)发布了第21次中国互联网络发展状况统计报告,报告显示,截至2007年12月,中国网民数已经达到了2.1亿,略低于美国居世界第二位,其中宽带用户早已经突破1.37亿,达到1.63亿,另外手机上网人数与日剧曾,根据信息产业部公布的2007年10月通信行业统计月报,目前中国已有5.3亿手机有效卡数。近几年来,中国手机有效卡数增长一直维持在17%以上,平均每年增长6000万张卡,增量非常可观。 上网计算机已经达到了7800万,网民的人均每月上网费用为74.9元;中国互联网行业继续了2006年快速发展的态势。2007年一年中国网民增加了7300万人,年

    5、增长率达到53.3%。相当于在过去一年中,平均每天增加网民20万人,或平均每分钟增加网民近140人。按照这个增长速度,预计2008年一月份过后,中国网民将超越美国成为全球第一。随着网络普及和上网人数的大增,在国内各大门户网站都架设了大型聊天室。如:新浪聊天室、中华网社区聊天室、搜狐等都成为网民们的热门聊天室。以新浪聊天室为例看,聊天室呈现积聚人气作用,并开设不同主题的聊天室以使网民们具有针对性的使用聊天室。新浪开设许多主题鲜明的聊天室:如针对不同地域开设了“同城联盟”,可以方便网民们和同乡之间联络和方便开展一些地域性质的活动。为针对不同年龄层而开设的“同龄话题”,使各年龄层的用户可以方便的选择

    6、自己的聊天对象群体,找到自己的合适的聊天话题。并且针对目前社会流行的热门话题和流行话题都有相应的主题室。随着网络技术的不段提高和改进,近些年来视频聊天成为上网的热门聊天方式,除了可以方便互相的交流外,可以更直观的了解对方,真正实现面对面的即时聊天。并且现在随着网络聊天室的发展,其功能已经超越了普通的聊天活动,如新浪聊天室定期邀请当今社会知名人士、专家、业界领袖、优秀人物、政府部门领导等开展一些社会活动、宣传和讨论等多种形式的活动。通过网络的形式更直接的和人们进行互动,实现意见即时反馈,即时回答和解决网民们提出的问题,使活动的效果更快更好的得到发挥。发达国家的3G许可证发放工作都已经基本完成,随

    7、着3G技术标准、网络设备、终端和业务的逐步成熟,3G许可证的发放已经开始从欧美地区向亚洲、非洲和中东欧地区转移。日韩是全球3G发展最为成熟的地区,截止到2006年3月底,日本和韩国的3G用户数分别占总移动用户数的53%和94%。日本WCDMA用户占全球WCDMA用户的44%。韩国CDMA2000 1X EV-DO用户占全球EV-DO用户的52%。西欧移动通信市场整体发展比较成熟,移动用户普及率处于饱和状态。截止到2004年底,西欧移动用户3.52亿,普及率高达90.1%,个别国家像英国、丹麦、希腊等移动用户普及率达到100%。到2007年4月底,我国移动用户数为4.87亿以上。从调查中可以得知

    8、,移动上网用户显著增多,对网络聊天室的功能提出更多的要求和功能。同时网络聊天室也是网络应用中出现较早的应用软件,其开发技术和设计思想都已经得到成熟的发展,并且已经具有许多成功的案例。在开发技术上已经没有什么技术难题,并且具有广泛的应用和市场空间。1.2本课题的目的、内容、要求1.目的网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使用JAVA的技术,如:开发各界面(登入、注册、公聊、私聊等界面)使用 Swing组件技术,实现数据的保存使用JDBC数据库连接和操作技术,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。2.内

    9、容一个网络聊天室的运行,首先是要有一个完整稳定的服务器端,并且拥有多个客服端。客服端要具有实现用户注册和用户登入,在登入成功后,要显示出公聊界面,实现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一的私聊功能。在服务器端可以实现不断的监听客户的连接,并且根据客户端发送过来的不同信息,如注册信息、登入信息、公聊信息、私聊信息、退出信息等,服务器端要作出不同的响应,并且要实现数据库的操作,如根据用户注册的信息保存在数据库中,根据登入时发送来的用户名和密码检测是否合法用户等。3.要求主要涉及图形用户界面

    10、的开发、布局和输入/输出流数据的控制,并且要通过Socket技术实现网络功能,整个程序采用Swing图形界面,要求熟练掌握Java图形用户界面的事件处理及部分Swing组件的使用。在代码的编写上要充分体现Java面向对象开发思想和多态性,提高代码的重用性和高效性,要深入理解接口的作用和内部对象等特性等。1.3研究意义本系统具有较好的现实意义,特别是随着科学技术的发展和社会的进步,尤其是计算机大范围的普及,网络飞速发展的今天,网络聊天成为人们生活中不可缺少的一部分,几乎每个网民在上网的时候都会选择聊天室与虚幻世界的人们进行各种各样的交谈,随着聊天室使用的频繁,各种各样的聊天室相继出现,尤其是应用

    11、JAVA多线程的聊天室更为人们所关注。所以这一系统实现人们所期望的页面流畅,美观,负载能力强,灵活易用,性能稳定的愿望。第2章 技术选择分析2.1可行性分析在软件开发之前对其进行可行性分析是十分必要的,可以知道该软件是否合乎用户的要求,以及行业标准,最重要的是软件的造价是否合乎用户的要求。1.经济可行性由于该软件是一个聊天室的开发,操作系统是Windows 、后台数据库采用Micsoft Access,开发环境为Eclipse, 在软件方面,都可以从网上直接下载。相关的学习资料也都可以从网上下载,也可以到图书馆查找,既经济又方便。但在实际应用方面,既方便了用户,又提高了网络的管理水平,大大的节

    12、省了人力、财力、物力,聊天室的电击率会大大提高。远远超出它的研发费用。由于以上的各项分析,该软件运行灵活,又有一定的安全性,因此开发该系统具有经济可行性。2.技术可行性(1) 就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能使用的是Windows Linux。JAVA语言具有平台无关性,可以不需要任何修改就可以运行在支持JAVA的任何计算机上。(2) JAVA的Swing 组件开发技术可以开发丰富的图形界面,并且Swing API类提供了丰富的外部接口和方法,可以方便实现系统功能。(3) 就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数)库的支持,使得利用

    13、Java开发各种应用程序,可以说是易如反掌。此外,在程序除错、修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容易。(4) Java支持内在的多线程运行,提供分布式的并发机制,运行效率高。(5) 异常处理,为了使Java程式更稳定、更安全,Java引入了异常处理机制。能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。(6) 高性能,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代

    14、码的速度与C/C+的性能没什么区别。(7) 网络功能,Java可以说是借助因特网而重获新生的,自然具备编写网络功能的程序。不论是一般因特网局域网的程序,如Socket、Email、基于Web服务器的Servlet、JSP程序,甚至连分布式网络程序,如CORBA、RMI等的支持也是非常丰富的,使用起来也很方便。(8) 源回收处理,GarbageCollection是由JVM对内存实行动态管理的。程序需要多少内存、哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐且危险的操作全部交由JVM去管理。让我们能够更专心地编写程序,而不需要担心内存的问题。内存的统一管理,对于跨平台也有相当大的帮助。

    15、综上所述,基于Java平台的聊天系统的开发设计具有技术可行性。2.2开发工具的选择Java的开发工具很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打

    16、开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:1.开放的可扩展的IDE2.成功的底层图形界面API3.强大的插件加载功能4.可以通过导入一些CVS相关的插件来实现版本管理的便易性2.3开发技术的选择本课题选择了java Socket技术开发网络聊天室。什么是socket? socket是一种用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上都有一个socket,你可以想象一个虚拟的电缆工作在两台机器之间,“电缆”插在两台机器的socket上。当然,物理硬件和两台机器之间的“电缆”这些连

    17、接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。简单的说,一台计算机上的socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。当你发送数据时,TCP/IP协议栈的每一层都给你的数据里添加适当的报头。有个好消息是java语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流socket”。思考一下socket像电话听筒一样在电话的任意一端你和我通过一个专门的信道来进行通话和接听。会话将一直进行下去直到我们决定挂断电话(除非我们使用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。如果你需要在两台机器之间进行通讯而不使用高级机制像

    18、ORBs(以及CORBA, RMI, IIOP等等),socket比较适合你。Socket的底层机制则相当棘手。幸运的是,java平台给我们一些虽然简单但是相当强大的高层抽象以至于我们创建和使用socket更加容易一些。一般而言,java socket有下面两种类型:TCP socket(由Socket类实现,下面的章节我们将对其讨论)UDP socket(由DatagramSocket类实现)TCP和UDP扮演同样的角色,但是实现是不同的。两者都接收传输协议数据包并把它们传递到表示层。TCP把信息分解成数据包(datagrams)并在接收端重新组装起来。它还对丢失的数据包进行重新传输的请求。

    19、TCP减少了上层的担忧。UDP没有组装和重传请求的功能。它只是传输数据包。更高层的层必须确保信息的完整性以及组合顺序的正确性。第3章 需求分析3.1项目概述1.产品描述人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。由于目前上网的一般都是具有高学历的新一代创业者,因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。该小聊天

    20、室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由注册界面、登录界面、聊天室界面、私聊界面、查看聊天内容界面、功能设置界面等构成。整个设计简洁明了、实用,使用简单。客户端登入通信功能设置记录保存用户登入用户注册公聊私聊字体颜色字体类型字体大小表情公聊记录添加文字图3-1 客户端结构图服务器监听情况发送系统消息显示登入情况图3-2 服务器结构图2.产品功能本项目具有以下主要功能:(1)客户端:n 用户

    21、注册功能,实现用户的登入ID注册和个人信息,并存入服务器数据库 中。n 用户登入功能,实现合法注册用户的登入。n 公聊功能,实现用户和在线的所有用户聊天方式。n 私聊功能,实现用户和在线的其他用户一对一的聊天方式。n 查看聊天记录,实现用户查看已聊天的历史聊天内容,分为公聊记录和私聊记录。n 发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。(2)服务端:n 可以不断的监听客户端请求n 显示登入客户的信息n 发送系统消息3.2功能需求1.用户注册1) 需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入ID,并保存在数据库当中。2) 执行者:用户3)

    22、 前置条件:无4) 后置条件:无5) 正常过程:l 向服务端发送注册请求l 服务端响应客户端,客户端弹出注册信息表单l 用户填写完表单后将注册数据传给服务端处理,并保存在数据库中l 返回客户端一个响应,显示用户注册的ID,提示注册成功。6) 异常过程(可选):l 用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示信息,并将光标定位到出错的地方。l 用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户重新填写表单。l 服务器未启动或出现异常2.用户登入1) 需求描述:用户填写登入ID 和密码,经服务器验证成功后进入聊天室主界面。2) 执行者:用户3) 前置条件:用户成功注

    23、册或已经拥有一个合法的ID号4) 后置条件:无5) 正常过程:l 向服务端请求连接,并发送登录信息。l 服务端处理并查询数据库中的用户信息l 返回客户端一个响应,提示登录成功,弹出聊天室主界面。l 刷新其他在线用户的用户列表信息6) 异常过程(可选):l 用户填写的ID或密码与数据库中的纪录不匹配,客户端提示登录失败。l 客户端设置的服务器地址或端口有误l 服务器未启动或出现异常3.公聊1) 需求描述:用户在聊天室公聊界面的发言内容,聊天室中的其他在线用户可以正常接受并正确显示(包括发送的表情和用户设置的字体颜色)。2) 执行者:登入用户3) 前置条件:用户登录成功4) 后置条件:无5) 正常

    24、过程:l 客户端用户登入成功后,启动客户端功能线程l 客户端将用户发送的信息打包传送给服务端,服务端进行数据分析后,并将用户的信息进行正确的处理,传给处在聊天室的所有在线其他用户并正常显示。6) 异常过程(可选):l 客户端与服务端断开连接,客户端提示信息发送失败。l 客户端发送的内容为空或包含不合法的字符内容4.私聊1) 需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。并且对方有消息提示,双方发送的信息对于聊天室的其他用户是不可见的。2) 执行者:用户3) 前置条件:用户登录成功,私聊的对方在线4) 后置条件:无5) 正常过程:l 客户端与服务端建立通讯l 客户端将用户发送的信息打包

    25、传送给服务端,服务端进行数据分析,查找目的用户的ID,并将用户的信息传给目的用户l 目的用户收到服务器的信息后,正确的显示并保存。6) 异常过程(可选):l 客户端与服务端断开连接,客户端提示信息发送失败。l 客户端发送的私聊内容包含不合法的字符7) 特殊需求(可选):不能与不在线的用户进行私聊5.发送表情1) 需求描述:用户的聊天内容可以是表情图片2) 执行者:用户3) 前置条件:用户可以正常聊天4) 后置条件:无5) 正常过程:l 客户端与服务端建立通讯l 客户端将表情所表示的信息传送给服务端l 服务器端进行数据分析后,查找目的用户的ID,并将所处理的信息传给目的用户l 目的用户端通过本地

    26、文件将信息翻译成表情并正确显示在显示窗体中。6) 异常过程(可选):l 客户端与服务端断开连接,客户端提示服务器异常。l 客户端发送的表情信息不正确或本地文件不存在异常6.聊天记录1) 需求描述:用户可以查询聊天的历史纪录,包括公聊记录和私聊记录。2) 执行者:用户3) 前置条件:用户正确登入后4) 后置条件:无5) 正常过程:l 发送、接收信息的同时将信息保存在本地文件中l 信息发送框中可以查询历史聊天记录l 从本地文件中读取信息,并显示在记录显示匡中。6) 异常过程(可选):l 服务端异常导致客户端退出,客户端提示服务器异常。l 客户端读取信息时目标文件不存在7.系统消息1) 需求描述:在

    27、聊天室的每一个用户都能接收服务端发送的的信息提示消息。2) 执行者:服务端3) 前置条件:服务端正常运行4) 后置条件:无5) 正常过程:l 服务器向所有在线用户发送消息l 客户端接收到消息,进行消息处理,并正确显示。6) 异常过程(可选):l 服务端异常,重启服务器。l 出现网络异常,发送系统消息失败。8.字体属性设置1) 需求描述:用户可改变输入消息的字体及颜色2) 执行者:用户3) 前置条件:用户可以正常聊天4) 后置条件:无5) 正常过程:l 用户为聊天信息选择新的字体和颜色。l 客户端将聊天信息及字体和颜色信息封装,发送到服务端。l 服务端处理接受到的数据并正确转发。l 目的客户端将

    28、接收到的信息解包,根据信息的内容,改变信息显示的字体及颜色,并在目的客户端正确显示出字体效果。6) 异常过程(可选):l 双方系统库中的字体不匹配,信息将以默认的字体显示。l 对方不支持字体属性的显示9.用户退出1) 需求描述:用户在正常情况下退出聊天室。2) 执行者:用户3) 前置条件:用户成功登录聊天室4) 后置条件:无5) 正常过程:l 向服务器发送用户登出消息l 服务器进行用户退出的数据处理l 服务器向聊天室其他用户发送登出消息l 刷新其他在线用户的用户列表信息3.3质量性能需求1.容错性需求当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之间信息传输不会因为数据封装问题

    29、出现丢失或乱码。因用户的误操作产生的异常应做出及时的处理或信息提示。2.稳定性需求软件应正常完成所有功能需求。服务器端应长时间运行无故障,故障修复时间一般控制在3小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作系统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄露。要求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象。3.软件可靠性需求要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可靠性和稳定性得到提高,并且便于系统维护,和新模块的添加。4.安全性需求安全性是防止网络方面的攻击。5.拓展性需求系统建成后,应在现行系统上不需要

    30、做大的改动或不影响整个系统结构,就可以增加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。6.易用性需求系统操作的界面必须简洁、操作方便易用、设计合理。第4章 概要设计4.1目的该阶段目的在于明确网络聊天室系统的数据结构和软件总体结构,各个软件模块的功能说明,数据结构的细节,系统运行配置与应用方式以及使用的关键技术。4.2运行环境运行环境见下表:名 称操作系统类型推荐操作系统版本推荐硬件(CPU/RAM/HD)数据库客户端Windows平台windows 2000以上(IE6.0 以上)P4 1.7G/256M/40G服务器Windows平台windows 2000以上P4

    31、3.6G/8G/120G4.3条件与限制1.软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。2.设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。3.设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。4.应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。4.4体系结构概述本系统采用C/S的结构设计模式,客户端接收用户的发送的信息到服务器,服务器通过处理转发到另一个客户端。客户端采用图形用户界面,方便与用户交互。服务器端用控制台的方式方便控制操作。系统设计总体原则:本设计不限制用户的组网方式

    32、。但对于互联网环境下的安全问题,本系统不能保证解决。系统要具有较强的灵活性,包括对功能设置的管理。整个系统要使用简单,界面要美观、大方,具有人性化特点。模块划分尽量简单明了,充分考虑用户已经习惯的划分分类。客户端分为用户注册、用户登录、信息通讯、字体设置、表情和保存聊天记录。用户注册和用户登录封装在用户登录的界面中,用户列表模块封装在系统的主界面中。信息通讯、字体设置、表情和保存聊天记录模块封装在聊天界面中。服务端实现消息接收、消息记录。4.5功能设计1.用户注册通过注册模块实现用户的在线注册,所填写的注册项目有:用户名、头像、口令、口令确认、性别、年龄、E-mail。用户注册界面正确填写注册

    33、项提交注册成功服务器正确填写错误图4-1注册活动图2.用户登入用户用过登入界面,填写登入用户名和口令实现系统的登入用户进入登界面输入用户名和密码提交进入系统服务器登入信息合法登入信 息不合法图4-2登录活动图3.公聊用户登入成功后进入公聊界面,通过输入聊天内容实现和其他的用户聊天,并可以显示其他用户发送的公聊信息。用户输入信息发送消息服务器格式正确格式有误图4-3公聊活动图4.私聊用户通过选择在线用户列表的其他用户,通过单击列表中的用户名显示与其私聊的对话框,实现和选中的用户进行私聊方式进行交流,其他用户不可见。用户选择其他用户输入信息发送消息服务器格式正确格式有误图4-4私聊流程图5.表情在

    34、用户公聊或私聊时可以同时,可以单击表情按钮打开表情窗体,通过鼠标事件可将选择的表情写入发送窗口中,以增强聊天的表达方式和效果。可以使聊天功能、更丰富更有趣。用户单击表情功能表情框显示表情在发送框发送表情图4-5表情活动图6.字体设置用户在聊天界面的功能模块中,单击字体功能按钮,在弹出的字体设置框中选择所需要设置的字体类型、字体显示方式,并在字体功能按钮下通过改变三原色来改变字体的颜色设置的字体效果,并将设置好的字体属性应用到自己的发送信息中。用户单击字体功能字体设置框显示设置字体效果应用到发送消息中图4-6字体设置活动图 7.记录保存用户在公聊和私聊的过程的同时,将显示在信息窗体中的聊天内容保

    35、存到本地文件中,用户可以通过单击查看记录按钮查看历史聊天内容,并可以在本地机器下次登入后,查看历史聊天的记录。用户信息显示记录按钮记录显示框本地记录文件单击读取保存信息图4-7 记录保存活动图8.系统消息用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发送系统消息,用于发送公告,提示等系统消息,可以方便管理员和客户的交流和管理。用户显示出系统消息发送系统消息用户服务器启动正确消息内容有误图4-8系统消息活动图第5章 详细设计及实现本系统采用C/S设计模式,系统分为客户端和服务器端,客户端包括注册模块、登入模块、公聊模块、私聊模块、功能设置模块、和客户端功能实现模块等。服务器端

    36、包括服务器界面,服务器功能实现模块等。5.1 客户端注册图5-1注册时序图用户必须填写注册给定的全部选项,并且按照正确的格式输入,如年龄一项只能输入数字,的格式等等,并可以在申请注册前验证输入的用户名是否已被使用。实现该功能所写的类为:(1)、Register类: 用于构建注册的主界面主要成员变量:String name;String c_password;String c_age;String c_email;主要方法: Register() /实现界面元素和设定元素属性 checkinfo() /发送提示的错误信息 mes() /点击事件处理actionPerformed()(2)、Sen

    37、dRegInfoThread类 用来检测注册的用户名是否已被使用主要成员变量:String username; Socket socket; ObjectInputStream o_in; ObjectOutputStream o_out;主要方法:public SendRegInfoThread(String name) username=name; /构造方法用于初始化public void run() /实现将信息的发送给服务器(3)、SendRegInfoSucThresd类 /发送注册消息内容主要成员变量:Socket socket; ObjectOutputStream o_out

    38、; ObjectInputStream o_in; HashMap hm; Object info; 主要方法: public SendRegInfoSucThread(Object info) this.info=info;/构造方法 public void run() /实现将注册信息发送给服务器(4)、RegisterData /用户发送给服务器端的注册类型数据主要成员变量: private String userName; private String passWord; private String userAge; private String email; private Str

    39、ing sex;主要方法:分别get,set上面的五个变量,获得用户的输入的名字,密码,年龄,电子邮件和性别的信息。5.2 登录图5-2登入时序图在设置好IP和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登入,通过验证后登入聊天室主界面,输入错误返回提示。实现该功能的主要类和方法:(1)、Land类 /实现登入的主窗体 主要成员变量:String hostid; /服务器IP地址 int server_port; /服务端口 Socket client_socket; final File propertyFile; /属性文件主要方法: public Land() /用于初始化登

    40、入界面的元素 public void actionPerformed(ActionEvent e) /连接服务器的方法体 public void run() /显示登入主窗体主方法(2)、LoginData 类 /发送登入数据类型主要变量:private String userName; private String passWord;主要方法:非别用get,set方法获得userName和passWord两个变量的值。5.3 公聊图5-3公聊时序图用户在公聊界面的信息输入框中输入要发送的信息和表情等,用户可以通过功能设置按钮设置自己定义的字体属性 ,如:字体类型 、字体大小 、字体颜色 、字

    41、体显示方式、表情等,并可以应用到信息输入框中, 点发送按钮实现信息的发送。并可以显示其他用户发送的公聊信息和系统所发送的系统信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。用户上线或下线时要在显示窗体中给出提示,并刷新用列表中的用户名。并可以通过双击用户名弹出与该用户进行私聊的对话窗体。实现该功能的主要类和方法:PublicChat类 /公聊界面本模块主要要实现显示在线用户列表,可以保存聊天记录,可以发送表情图片,可以显示对方发过来的字体信息,并且自己可以发送消息,显示自己的用户名的功能。并且有保存聊天记录,背景,字体,表情的按钮。5.4 私聊图5-4私聊时序图用户在私聊界面的信息

    42、输入框中输入要发送的信息和表情等,用户可以通过功能设置按钮设置自己定义的字体属性 ,如:字体类型 、字体大小 、字体颜色 、字体显示方式、表情等,并可以应用到信息输入框中, 点发送按钮实现私聊信息的发送。并可以显示其他用户发送过来的私聊信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。实现该功能所用的主要类和方法PersonalChat类 /私聊界面类其中包括显示聊天内容的文本面板,显示发送消息的文本面板,发送消息按钮,关闭窗体按钮,显示聊天内容的按钮等。5.5发送系统消息 图5-4 系统消息时序图服务器端收到用户上线或下线时发送给其他在线用户消息提示,并可以根据需要,主动发送消息给

    43、客户,实现服务器端的管理。实现功能的主要类和方法(1)、ServerInterFace类 /服务器的用户界面 private void initCompenent() / 组件初始化 class StartServer implements ActionListener / 内部类启动和关闭监听(2)、TalentServer类 /服务器启动模块 public void run() / 发送系统消息 class SysinfoBuAction implements ActionListener /启动服务器5.6字体设置每个用户可以根据自己的个人喜好设置自己要发送的内容的字体属性。并可以在其他

    44、目的客户界面按照自己所设置的显示方式显示。主要设置了三种字体的属性,分别为字体的样式,大小和字型。实现该功能的主要类和方法 Fontset类 /字体设置窗体面板 public void actionPerformed(ActionEvent e) /实现选择字体颜色,选择字体类型,选择字体大小,选择字体显示方式 功能 private void updataFont() /显示更改后的字体表现5.7发送表情在用户公聊或私聊时可以同时,可以单击表情按钮打开表情窗体,通过鼠标事件可以将选择描述表情的语句选中,并跟随所要发送的内容到聊天窗口中,以增强聊天的表达方式和效果。可以使聊天功能、更丰富更有趣。实现功能的主要类和方法 FaceFrame类 /显示表情窗体5.8记录保存和显示本系统可以在应用中将用户聊天的记录保存在本地文件当中,用户在本地下次登入后,可以查看历史聊天记录。方便用户继续聊天。实现该功能使用的主要类和方法(1)、ChatInfoS


    注意事项

    本文(基于Java平台上聊天系统的研究.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922