基于Java即时聊天系统的设计实现分析.doc
《基于Java即时聊天系统的设计实现分析.doc》由会员分享,可在线阅读,更多相关《基于Java即时聊天系统的设计实现分析.doc(77页珍藏版)》请在咨信网上搜索。
- - 本科毕业设计〔论文〕 基于Java即时聊天系统的设计与实现 学 号:05 学生:何晶 指导教师:忠诚 所在学院:计算机科学技术学院 所学专业:计算机科学与技术专业 2016年 6月 - - word.zl- - - 摘 要 伴随着互联网的高速开展,产生了一系列与互联网相关的新鲜事物,即时聊天系统就是其中最具代表性的产物。即时聊天系统经过不断地开展,凭借其迅速、便捷、即时的特点,逐渐成为一种重要的信息交流工具,受到越来越多的网民的青睐。即时聊天系统开发主要包括两个方面:即时聊天系统效劳器端设计、即时聊天系统客户端设计。即时聊天系统效劳器端设计主要通过Socket套接字建立效劳器,效劳器能够读取和转发从客户端发来的信息,并且能够刷新用户列表。即时聊天系统客户端设计主要通过与效劳器建立连接,从而使效劳器端与客户端的信息进展交流。在这里,网络通信机制原理得到了运用,通过直接继承Thread类来建立多线程。同时,开发中利用了计算机网络编程的根本理论知识,如TCP/IP协议、客户端/效劳器端模式〔Client/Server模式〕、网络编程的设计方法等。在网络编程中利用流来实现信息的交换,从而读取和发送信息。即时聊天系统采用myeclipse为根本开发环境和java语言进展编写,通过不断修正和改良初始原型系统,直至此系统完全可行为止。 关键词:即时聊天系统;套接字;Java Abstract Along with the high-speed development of Internet, produced a series of new things related to the Internet, instant messaging system is the product of one of the most representative. Instant messaging system through constant development, with its fast, convenient, real-time characteristics, being an important munication tool, get the favour of a growing number of Internet users. Instant messaging system development mainly includes two aspects: instant messaging system server client, instant messaging system design. Instant messaging system design mainly through the Socket server Socket server, the server can read and forward from the client's information, and be able to refresh the user list. Instant messaging system design mainly by the client and the server connection is established, which makes the server to municate with the client's information. Here, the principle has been using network munication mechanism, through direct inheritance for building a multithreaded Thread class. At the same time, the use of puter network programming in the development of the basic theory of knowledge, such as TCP/IP protocol, Client/Server mode (Client/Server mode), network programming design method, etc. Using flow in network programming to achieve the exchange of information, so as to read and send information. Instant messaging system using myeclipse as the basic development environment and the Java language to write, by constantly revised and improved the initial prototype system, until the system is pletely feasible. Key words:Instant messaging system ;socket ;Java - - word.zl- - - 目 录 摘 要I AbstractII 第1章 绪论1 1.1 课题背景1 1.2 国外开展现状1 1.2.1 国外开展现状1 1.2.2 国开展现状1 1.3 开发目的和意义2 1.4 系统设计的思想2 第2章 方案论证3 2.1 方案分析3 2.2 可行性分析3 2.2.1 经济可行性3 2.2.2 技术可行性4 2.2.3 操作可行性4 2.2.4 法律可行性4 2.3 方案确实定4 2.4 系统设计的相关技术4 第3章 需求分析8 3.1 系统根本功能描述8 3.2 系统需求分析8 3.3 数据流图8 3.4 数据字典10 3.5 用例图12 第4章 系统概要设计14 4.1 系统总体流程图14 4.2 系统功能模块划分15 第5章 系统详细设计与实现18 5.1 系统设计与实现18 5.1.1 注册模块18 5.1.2 登录模块20 5.1.3 聊天模块22 5.1.4 后台管理模块25 5.1.5 其他功能实现28 5.2 数据库设计31 第6章 软件测试与结果分析38 6.1 软件测试38 6.1.1 白盒测试38 6.1.2 黑盒测试38 6.1.3 系统测试38 6.2 测试方法与总结39 6.2.1 测试方法39 6.2.2 测试总结40 结 论41 致43 参考文献44 附 录45 - - word.zl- - - 第1章 绪论 1.1 课题背景 人类社会在不断的开展,从原始社会开展到如今高度兴旺的文明社会,离不开人类的团结协作及创造力,而交流便是人类在开展过程中至关重要的一项技能。在人类漫长的开展过程中,交流的方式也在不断更新变化。从最早的交流方式——直接交流〔语言、文字等〕,到后来利用介质的交流方式——间接交流〔飞鸽传书、烽火狼烟等〕,再到近现代利用工业革命的成果,创造出了远程交流方式〔电报、等〕。而到了上世纪末,随着计算机技术和网络技术的高速开展,诞生了一种新型交流方式——即时聊天系统。即时聊天系统在沟通、协作方面有着其它交流方式无法比较的优势,它凭借方便、快捷、实时等特点得到了越来越多人的青睐。 本课题研究的就是基于Java语言的即时聊天系统。即时聊天系统是为了满足各用户之间进展即时的信息交流而设计的一套系统,作为一种新型的通信和交流工具,即时聊天系统具有极其广泛的开展前景。本系统的主要特性是能动态、实时的完成信息的传递,同时具有高效的交互性,更有效的处理客户请求,同时维护和更新也更加简易。本文接下来会依次介绍即时聊天系统运行所需的环境及其工作流程和各个功能控件的工作原理,并且文中提供了局部程序源代码。 1.2 国外开展现状 1.2.1 国外开展现状 当今国际上对网络通信系统研究的较好的公司有:思科,Sun,Ms等公司,思科主要研究的是底层的传输;MS,Sun公司研究的是应用层。其中MS公司凭借其在操作系统的垄断地位,为了在网络的开展中取得先机,采用了各种各样的手段。但是,其捆绑的msn,无论从功能上,还是技术上来说,都不算是非常先进的。这让人想起了当年的网景公司,网景只是生不逢时。MS不择手段的想打跨网景,可见其对网络的重视。如今,Sun公司在网络应用上捷足先登,凭借着Java,Sun在网络的应用上领先于MS。微软,想用同样的方法搞跨对手,因此它拿出了Visual c#来对抗Java。这些都是在应用层面的开发工具,应用层上的产品就更显种类繁多。ICQ几乎是国际上通用的即时通信工具,由于在我国它的应用不是很广,所以其原理也很少被介绍。Msn,是MS的产品,同样在国没什么市场,所以对其原理也很少被讨论过[1]。 1.2.2 国开展现状 国在应用层上的网络应用软件目前开展异常的火爆,因为我国有着网络应用的最大的市场。现在国网络的根底性建立开展迅速,应用软件也层出不穷。不少厂商分别推出了自己的IM,如腾讯QQ、阿里旺旺、新浪UC、移动飞信等,这些都是我们所熟悉的PC端的即时通讯软件。随着智能手机、平板电脑的普及,一些移动端的即时通信系统也如雨后春笋般涌现出来,如小米公司的米聊,腾讯公司的微信,还有年轻人之间很流行的陌陌、游戏玩家常用的YY语音等。这些软件本身功能也越来越丰富,远远超出了单纯的即时聊天系统的畴。现在的即时通信系统不仅仅是人们的沟通工具,还成为了人们利用其进展电子商务、工作、学习等交流的平台。 1.3 开发目的和意义 在当今社会,不管是个人用户还是企业用户,对沟通的需求总是在不断地开展。传统的沟通交流方式如、 、等已经不能完全满足人们学习、工作、生活的需要。随着计算机软件、计算机网络和移动通信技术的开展融合,集方便、廉价、快捷、实时等优点于一身的即时聊天系统可以说是继电子、万维网之后,互联网上最具有杀伤力的应用。很难想象一台个人电脑没有安装像QQ这样的即时通讯软件。虽然即时聊天系统设计的初衷是聊天,但正如前面所说,其功能已经超出了聊天的畴,随着企业即时通讯工具〔EIM〕的出现,IM系统更是成了企业信息发布、资源共享、问题探讨和网络营销的一把利器。通过现有的技术,企业完全可以摒弃通用的免费的即时通讯系统,转而根据自己企业的需求定制开发自己专属的部即时通讯系统,以实现更好的管理,提高员工的工作效率。我们的生活中沟通无处不在,即时聊天系统这类广泛使用的根底软件的研究开发意义深远。 对于个人用户而言,能够实现好友即时通讯,传递实时信息,让用户随时随地都可与好友保持畅快有效的沟通。 对于企业用户而言,能够实现建立员工交流平台,统一信息发布平台,减少运营本钱,促进企业办公效率。 商业即时通讯系统的功能越来越多样化,一些功能也很新颖,如现在流行的语音对讲功能。本系统不比商业系统,没有考虑过多的复杂性,主要实现了根本的通讯功能,以满足学习研究之用。 1.4 系统设计的思想 基于Java技术的聊天系统主要是探索如何在Java技术下能够实现即时聊天的一些根本功能:用户注册,用户登录,查找其他用户,添加删除好友,添加个性签名,发布和接收系统消息,实现一对一聊天,能够发送表情等功能。 论文的设计主要采用了两种研究方法:一是文献资料研究的方法。在研究聊天系统现实中,本人通过图书馆、电子图书馆学习了Java语言中的一些编程技术;二是理论与实际相结合,既然掌握了技术与方法,那么就应该快速的进展实践,在软件的设计过程中,才能够理解到理论与现实的差距,遇到棘手问题,应该快速查阅资料快速攻破。 第2章 方案论证 2.1 方案分析 经过认真的研究与分析,同时综合各种计算机高级语言的特征和适应围,最终决定选择纯面向对象的Java语言来完成即时聊天系统的设计。对于本系统的设计,可以采用C/S和B/S两种不同的模式。在数据库方面,Hibernate和MyBatics都有着很强大的功能,而且Mysql和Oracle也有着不同的优缺点。综上所述,可以得到以下两个方案。 方案一: C/S模式+Hibernate+Oracle C/S〔Client/Server〕构造,即大家熟知的客户机和效劳器构造,其优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给效劳器。对应的优点就是客户端响应速度快。而且Hibernate对数据库进展的是重量级的封装,对整个运行速度不会很慢。而且Oracle体积很大一般在几个GB的安装包,运行时它的存一般是几百兆,但是Oracle集成的功能非常强大。 方案二: B/S模式+MyBatics+Mysql B/S〔Browser/Server〕构造即浏览器和效劳器构造,它是随着Internet技术的兴起,对C/S构造的一种变化或者改良的构造。在这种构造下,用户工作界面是通过浏览器来实现,极少局部事务逻辑在前端〔Browser〕实现,但是主要事务逻辑在效劳器端〔Server〕实现,形成所谓三层3-tier构造。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的本钱和工作量,降低了用户的总体本钱〔TCO〕。MyBatics是对数据库的轻量的一个封装,但是sql语句需要自己来设置,配置在xml文件中。而MYSQL非常小,一般几十兆,对主机的存占用也不是很大,安装方便。 2.2 可行性分析 开发任何一个系统,都是要受到时间和资源等的一些限制。因此,在每一个系统开发之前,都必须要进展可行性分析,这样就可以减少软件开发所带来的风险,也大大的防止了在物力、人力和财力上的浪费[2]。 本系统的可行性分析应包括四个方面:经济可行性、技术可行性、操作可行性和法律可行性。 2.2.1 经济可行性 计算机网络已经普及,因此在网络设备上不需要进展大的投入。本系统如果采用一个MySQL数据库效劳器,相对于Oracle数据库效劳器本钱偏低。同时,本系统能够让人们的交流更加便捷,其带来的间接效益远远超过了其开发本钱,所以在经济上本系统的设计是具有完全的可行性的。 2.2.2 技术可行性 此系统可以使用MySQL存储用户信息,由于MyBatics对Sql语句的封装小,这会增加开发过程中的代码量,并且,Oracle运行时很占用存,它集成了很多功能,而且我们用很多功能用不上,所以MySQLl是很满足我们的需求的。MySQL作为一种关联数据库管理系统,将数据保存在不同的表中,是一个平安度高、可靠性好的并且能够支持面向对象设计的数据库系统。同时,MySQL开放源码,速度快、总体拥有本钱低等特点Error! Reference source not found.。并且在易用性、可维护性、灵活性等方面也很好。采用JDBC技术对其进展增删改查,使用套接字来实现网络上客户和效劳器之间的连接,同时采用Hibernate 框架来管理Java 类到数据库表的映射〔包括从Java数据类型到SQL数据类型的映射〕,并且提供数据查询和获取数据的方法。所以从技术角度来看本系统的设计是具有完全的可行性的。 2.2.3 操作可行性 一方面可以让本地机同时作为客户端和效劳器实现一台机器上的即时通讯。另一方面,只要一台以上计算机连接在同一个局域网,并且在作为客户端机器的本系统中设置需要连接的作为效劳器端机器的IP地址,本系统就可以实现局域网通讯,所以操作上完全不存在问题。如果要实现internet上通讯,理论上只需要将效劳器端运行在一个有固定IP的公网上就可以。 2.2.4 法律可行性 本即时聊天系统的开发,不会侵犯到别人的专利,也不违反国家的相关规定,所以在法律上来说也是可行的。 2.3 方案确实定 根据以上的分析和总结,很显然方案一更适合我们的完成系统设计。因此,我们使用方案一来进展工程的开发。 2.4 系统设计的相关技术 本即时聊天系统是基于Java语言的,采用C/S构造,使用MySQL存储用户信息,采用JDBC技术对其进展增删改查,使用套接字来实现网络上客户和效劳器之间的连接,同时采用Hibernate 框架来管理Java 类到数据库表的映射,并且提供数据查询和获取数据的方法。 1、Java语言 Java是一种通过解释方式来执行的语言,其语法规那么和C++类似。同时,Java也是一种跨平台的程序设计语言[3]。用Java语言编写的程序,可以运行在任何平台和设备上,如跨越IBM个人电脑、MAC苹果计算机、各种微处理器硬件平台,以及Windows、Unix、OS/2、MAC OS等系统平台,真正实现“一处编写,到处运行〞。Java非常适合于企业网络和Internet环境,并且已成为Internet中最具影响力、最受欢送的编程语言之一。 与目前常用的C++语言相比,Java语言简洁得多,而且提高了可靠性,除去了最大的程序根源错误,此外它还有较高的平安性,可以说它是有史以来最为卓越的编程语言。 Java语言编写的程序既是编译型的,又是解释型的。程序代码经过编译之后转换为一种称为Java字节码的中间语言,Java虚拟机〔JVM〕将对字节码进展解释和运行。编译只进展一次,而解释在每次运行程序时都会进展。编译后的字节码采用一种针对JVM优化过的机器码的形式保存,虚拟机将字节码解释为机器码,然后在计算机上运行。 Java语言的特点包括:简单、面向对象、分布性、可移植性、解释型、 平安性、强健性、多线程、高性能、动态。 2、MyEclipse简介 MyEclipse,是基于Eclipse开发的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进展Java、JavaEE开发,80%以上的全球财富100强企业均是MyEclipse的用户。 MyEclipse提供了对UML、Ajax、Web、Web Services、J2EE、JSP、 XML、 Struts、 JSF、 Java Persistence、 E、扩展数据库以及各种应用效劳器的集成支持[4]。MyEclipse也全面支持各种主流的第三方框架,让你能够快速高效地进展开发工作。此外,MyEclipse还全面支持各种基于Eclipse平台的插件,允许你自由定制或扩展个性化功能。 MyEclipse全面支持Eclipse开源平台的所有功能特性,如果你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包括熟悉的Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse更加快速、简单[5]。 3、Oracle简介 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 ORACLE数据库系统是美国ORACLE公司〔甲骨文〕提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/效劳器(CLIENT/SERVER)或B/S体系构造的数据库之一。比方SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它[7]。 4、网络通信协议简介 网络通信协议为连接不同操作系统和不同硬件体系构造的互联网络提供通信支持,是一种网络通用语言。网络通信的层次构造和网络通信的协议,是开发网络程序的根底。目前在网络编程方面最常用的是TCP/IP和UDP通信协议。通过这些协议,网络通信各主机可以用一种统一而非杂乱的规,高效便捷地相互发送和接收消息。本系统在通讯功能实现中采用了TCP传输协议,直接使用的Java API提供的类Socket和Serversocket等来实现。 〔1〕TCP传输协议说明 TCP协议是面向连接的协议,比方说在客户端A和B进展连接之前必须首先建立数据通路,就向打一样,在通话之前必须先拨号,等待对方的接听以后才能进展通话。TCP协议中数据传输采取的是同步方式,当数据发送到对方时,必须等待接收方的应答信号后才能继续下一次的发送工作,即通常所讲的三次握手。由于TCP协议采用的是这种连接方式,因此由它建立的连接是可靠的。在网络不是十分理想的情况下,速度牺牲很大,但是却能够保证所传输的数据的正确性。 〔2〕UDP传输协议说明 UDP协议采用的是面向无连接的通信方式,它在通信前不需要提前建立通信链路,它是异步的,数据的发送比较迅速,不需要等待应答信号。优点是发送速度较快,但是在数据的一致性方面不好,在网络差的情况下,容易丧失数据包。另外,使用UDP传输数据时对数据是有大小限制的,每个被传输的包必须限定在64KB之[6]。 〔3〕Java Socket(套接字)说明 在Java语言里,使用Socket(套接字)模型来封装网络传输的具体动作。Java提供了Socket的相关包,Java中Socket的设计采用了面向对象的思路,模拟了TCP协议里客户端和效劳器端的通信流程,并封装了创立连接、发送接收数据流、断开连接等方法。所以,使用Socket包,程序员不仅可以创立客户端和效劳器之间的通信信道,还能实现发送和接收数据流等的网络通信功能[8]。 针对一个特定的连接和通信过程,效劳器和客户端程序里都有一个Socket对象,我们可以想象一下其场景,在通信过程中,有一条虚拟的“光缆〞构架在效劳器和客户端之间,光缆的两头都插在了Socket这“插座〞里。事实上,Java采用Socket包是对TCP协议的进一步抽象,更向程序员屏蔽了TCP通信的细节,具体表现在以下两方面 。 一、 在使用Socket类里的方法建立信道的时候,Socket类屏蔽了通过三次握手建立信道的全部流程,直接向程序员返回信道类的句柄(Socket类的实例)或是出错信息。 二、 Socket类向程序员屏蔽了效劳器和客户端之间的物理硬件指标和底层的连接方式,所以我们在使用Socket类开发网络程序时,可以简单地调用其提供的方法来传输数据,而不必关心数据流的传输和接收方式。 5、C/S模式 20世纪90年代出现并迅速占据主导地位的一种计算模式为客户机/效劳器模式,简称为C/S模式,它实际上就是把主机—终端模式中原来全部集中在主机局部的任务一分为二,保存在主机上的局部负责集中处理和汇总运算,成为效劳器;而下放到终端的局部负责为用户提供友好的交互界面,称为客户机。相对于以前的模式,C/S模式最大的改良是不再把所有软件都装进一台计算机,而是把应用系统分成两个不同的角色和两个不同的地位:一般在运算能力较强的计算机上安装效劳器端程序,而在一般的PC上安装客户机程序。正是由于个人PC机的出现使客户机/效劳器模式成为可能,因为PC机具有一定的运算能力,用它代替了上面第一种模式的哑终端后,就可以把主机端的一局部工作放在客户机端完成,从而减轻了主机的负担,也增加了系统对用户的响应速度和响应能力[9]。 客户机和效劳器之间通过相应的网络协议来进展通讯。客户机向效劳器发出数据请求,效劳器将数据传送给客户机进展计算,计算完毕,计算结果可返回给效劳器。这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和效劳器之间的通讯是通过网络协议进展的,是一种逻辑的联系,因此物理上在客户机和效劳器两端是易于扩大的。C/S模式是目前占主流的网络计算模式。 第3章 需求分析 3.1 系统根本功能描述 客户端可以实现注册,登录,即时聊天,相互之间收发文件,发送截图,查看历史聊天记录等功能。收发消息时,可以实现离线接收。 效劳器端应当建立一个ServerSocket,并且不断进展侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。效劳器端应当是一个信息发送中心,所有客户端的信息都传到效劳器端,由效劳器端根据要求分发信息。 在后台管理系统,可以到对用户进展增删改查,查看在线用户,和踢用户下线。 3.2 系统需求分析 聊天系统不外乎两个方面,效劳器端和客户端。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下效劳器端的任务: 〔1〕效劳器端应当建立一个ServerSocket,并且不断进展侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。 〔2〕效劳器端应当是一个信息发送中心,所有客户端的信息都传到效劳器端,由效劳器端根据要求分发信息。 以上就是效劳器端最主要的两个任务。不难看出,效劳器端的任务并不复杂。 客户端应该完成的工作包括: 〔1〕与效劳器端建立通信通道,向效劳器端发送信息。 〔2〕接收来自效劳器的信息。 相对效劳器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。 3.3 数据流图 数据流图〔DFD〕,是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统部的逻辑流向和逻辑变换过程。是构造化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法 [10]。 1. 顶层数据流图 图3-1 系统顶层数据流图 2. 客户端数据流图 图3-2 客户端数据流图 3. 效劳器端数据流图 图3-3 效劳器端数据流图 3.4 数据字典 数据字典的作用主要是对数据流程图中的数据项,数据构造,数据流,处理逻辑,数据存储和外部实体等方面进展具体的定义Error! Reference source not found.。建立数据字典的目的是为了保证全局数据的一致性和准确性。数据字典配以数据流程图就可以从图形和文字两方面对系统做出完整的定义和描述Error! Reference source not found.。 1.离线消息表 〔1〕数据项:MSG_ID 含义说明:消息ID 别名:消息ID 类型:NUMBER 〔2〕数据项:MSG_CONTENT 含义说明:消息容 别名:消息容 类型:VARCHAR2 长度:2000 〔3〕数据项:MSG_SENDFROM 含义说明:消息发送者 别名:消息发送者 类型:INTEGER 〔4〕数据项:MSG_SENDTO 含义说明:消息接收者 别名:消息接收者 类型:INTEGER 〔5〕数据项:MSG_SENDTIME 含义说明:消息发送时间 别名:消息发送时间 类型:DATE 〔6〕数据项:MSG_REMARK 含义说明:备注 别名:备注 类型:VARCHAR2 长度:3000 〔7〕数据项:MSG_TYPE 含义说明:消息类型,如是群聊消息还是私聊消息 别名:消息类型 类型:VARCHAR2 长度:2 2.用户信息表 〔1〕数据项:U_ID 含义说明:用户ID 别名:用户ID 类型:NUMBER 〔2〕数据项:U_NAME 含义说明:用户名 别名:用户名 类型:VARCHAR2 长度:50 〔3〕数据项:U_PWD 含义说明:用户密码 别名:用户密码 类型:VARCHAR2 长度:50 〔4〕数据项:U_IP 含义说明:IP地址 别名:IP地址 类型:VARCHAR2 长度:50 〔5〕数据项:U_STATE 含义说明:用户状态 别名:用户状态 类型:VARCHAR2 长度:50 〔6〕数据项:U_GENDER 含义说明:性别 别名:性别 类型:VARCHAR2 长度:50 〔7〕数据项:U_EMAIL 含义说明:电子 别名:电子 类型:VARCHAR2 长度:50 〔8〕数据项:U_LAST_LOGIN 含义说明:最后一次登录 别名:最后一次登录 类型:DATE 〔9〕数据项:U_LAST_EXIT 含义说明:最后一次退出 别名:最后一次退出 类型:DATE 〔10〕数据项:U_REMARKE 含义说明:备用 别名:备用 类型:VARCHAR2 长度:3000 〔11〕数据项:U_SIGNATURE 含义说明:个性签名 别名:个性签名 类型:VARCHAR2 长度:100 〔12〕数据项:U_HEAD_IMG 含义说明:用户头像 别名:用户头像 类型:VARCHAR2 长度:100 〔13〕数据项:U_TYPE 含义说明:类型 别名:类型 类型:VARCHAR2 长度:50 〔14〕数据项:U_BIRTHDAY 含义说明:用户生日 别名:用户生日 类型:DATE 3.5 用例图 1.普通用户的用例图: 图3-4 普通用户用例图 2.后台管理员的用例图: 图 3-5 后台用户用例图 第4章 系统概要设计 4.1 系统总体流程图 图4-1 系统总体流程图 4.2 系统功能模块划分 本系统主要分为注册、登录、聊天、后台管理四大模块。整个系统的详细构造如图4-2所示。 图4-2 系统总体功能模块划分 各个功能模块设计如下: 1、注册模块 在登录界面上有注册按钮,用户可以点击注册,填入个人相关资料,提交给效劳器。效劳器接收到信息后通过纯JDBC方式或者JDBC—ODBC桥接的方式连接数据库并添加记录。 用户注册流程图如图4-3: 图 4-3 用户注册流程图 2、登录模块 用户在客户端输入账号和密码,然后建立与效劳器端的连接,告诉效劳器执行登录操作。效劳器收到后,开场通过JDBC读取数据库,然后与用户输入的信息进展比对,如果成功,便翻开主程序窗口。然后客户端向效劳器请求读取好友列表,效劳器收到该请求后从数据库中取出该用户的好友列表,然后向客户端发送这些信息,客户收到后就在主窗口显示好友。 用户登录流程图如图4-4: 图4-4 登录流程图 3、实时聊天模块 客户端首先发送消息到效劳器端,效劳器端程序判断客户端发来的信息类型,如果是普通的聊天消息就根据发送者信息和承受者信息进展消息转发。例如客户端A向客户端B发送消息的处理过程如下:首先A向效劳器发送消息,效劳器程序判断消息类型,如果是普通的聊天消息,那么解析该消息,得到该消息的发送者A,承受者B。接着判断B是否在线,如果在线就将消息发送过去,否那么将消息存入数据库。B接收到A发来的信息,如果是未建立对话窗口,那么在屏幕右下角出现弹窗提示。 此外还有群组聊天功能,可以在“官方聊天室〞功能中实现一对多的聊天,即在聊天室发送的消息是面向所有在线用户的。 用户聊天流程图如图4-5: 图4-5 聊天流程图 4、 系统后台管理模块 〔1〕系统效劳:效劳器端的管理员可以在这里启动后台的效劳器,发布聊天室公告或者弹窗公告给所有在线用户。如果未开启效劳器,那么在客户端无法登录,并会返回相应的消息提示。 〔2〕用户管理:可以根据用户名或者用户ID查询已注册的用户详细信息,并且可以修改、保存相关信息。这是一个对数据库的简单的增删改查的操作。 第5章 系统详细设计与实现 5.1 系统设计与实现 本系统主要分为注册、登录、聊天、后台管理四大模块。 下面详细介绍各个模块的具体实现。 5.1.1 注册模块 正如我们使用的QQ一样,使用之前我们要申请一个QQ号。本系统虽然没有设计这么复杂的流程,但是也必须在登录前注册账号。只有后台数据库里存在的用户才能使用本系统。 注册界面如图5-1所示,填完消息点击注册即可。 图5-1 用户注册界面 此外,信息填写不完整或填写有误将有错误提示。此处调用了JOptionPane对象的showMessageDialog方法,通过设置该方法的参数显示不同类型的提示框。地址的检测用到了Java里面的正那么表达式相关知识,使用Pattern对象对地址格式的正那么式进展编译,再调用Matcher对象的matches方法判断用户输入的是否与该格式匹配。 注册完成后,通过JDBC技术连接MySQL数据库将记录插入数据库表中。 注册功能关键代码〔注册成功窗口〕代码如下: private class RegSuccess extends JDialog implements ActionListener{ private JTextArea txtInfo = new JTextArea(); private utton btnLogin = new utton("直接登录"); private utton btnReturn = new utton("返回登陆界面"); private RegUser user; public RegSuccess(RegUser user,Frame owner, boolean modal) { super(owner,modal); this.user = user; s- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 即时 聊天 系统 设计 实现 分析
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文