基于J2SE的QQ聊天系统的设计本科毕业论文.doc
《基于J2SE的QQ聊天系统的设计本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于J2SE的QQ聊天系统的设计本科毕业论文.doc(39页珍藏版)》请在三一办公上搜索。
1、本科毕业论文题目:基于J2SE的QQ聊天系统 基于J2SE的QQ聊天系统摘 要Java编程语言是目前世界上最流行的计算机编程语言之一,拥有面向对象,分布式,性能优异,多线程等特性。越来越多的企业, 因为使用了Java而提高了生产效率。绝大多数IT企业都选择用Java来进行软件开发,如此众多的企业青睐,使Java在所有语言中的排名中名列前茅。本课题主要研究的是利用J2SE编程语言的多线程技术和Socket的优越性,将软件中的视图、业务逻辑互相分离,设计与实现局域网聊天软件,此系统分为服务器和客户端,服务器提供转发信息及广播系统消息功能,而客户端主要实现私聊和群聊功能,同时能利用线程同步完成文件的
2、传送。关键词: J2SE,Socket通信,多线程,QQ聊天系统Design and Implementation of the QQ chatting system based on J2SEAbstractThe Java programming language is one of the worlds most popular computer programming language, object-oriented, distributed, high-performance, multi-threaded. More and more enterprises, because o
3、f the use of Java and improve production efficiency. The vast majority of IT companies have chosen to use Java software development, so many companies favor, the Java ranked among the best in all languages. The main subject of the study is the use of the J2SE programming language multi-threading tec
4、hnology and Socket superiority separated from each other, views, business logic software, design and implementation of LAN chat software, this system is divided into server and client, the server provides forwarding information and broadcasting system messages, the client achieve private chat and gr
5、oup chat feature, while thread synchronization completed document delivery.Key words:J2SE, Socket communication, multi-threaded, QQ chat system目 录摘 要III关键词IIIABSTRACTIIIKEY WORDSIII第一章 前言11.1系统背景11.2系统开发的目的和意义11.3 对现阶段聊天软件的分析11.4本系统优势及开发方案1第二章 关键技术概述32.1 Java语言概述32.2 Java Swing简介3第三章 系统分析43.1 需求分析43
6、.2 功能分析4 3.2.1 用户注册和登录4 3.2.2 聊天功能分析5 3.2.3发送接收文件6 3.2.4 查看聊天记录6 3.2.5启动、停止服务6 3.2.6 查看好友资料73.3系统开发环境7第四章 系统概要设计94.1 系统用例图94.1.1 客户端用户用例图94.1.2 服务器端管理员用例图94.2 系统功能模块设计94.2.1 系统功能模块图10第五章 系统详细设计115.1 服务器设计思想115.2 服务器端界面115.2.1 服务器端各主要类的定义及其功能115.2.2 服务器端管理功能设计125.2.3 服务器端显示消息的功能设计125.3 客户端设计思想125.4 客
7、户端界面135.4.1 客户端类的定义以及功能实现135.4.2 客户端发送消息的设计135.4.3 客户端显示收到消息的设计145.4.4 客户端发送接收文件的设计145.4.5 查看好友和个人资料设计14第六章 系统具体实现156.1登陆系统的实现156.2 服务器端模块功能实现156.3 显示在线用户166.4 公聊和私聊功能代码实现166.5 客户端模块功能实现166.6 客户端接收发送消息功能代码186.7 用户发送接收文件功能代码19第七章 系统功能测试217.1软件测试技术217.2 测试用户注册登录217.3 测试用户聊天记录217.4 测试聊天及其文件传送227.5测试启动停
8、止服务器服务22第八章 结论23致谢24参考文献25第一章 前言1.1系统背景QQ聊天软件,是一种聊天工具,使用者通过安装软件可以进行多人之间的即时沟通。它除了能加强网络之间的信息沟通外,最主要的是可以将网站信息与聊天用户紧密联系在一起。QQ聊天软件不但成为人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台,不仅比传统沟通方式更节省办公费用,而且还使工作更有效率。1.2系统开发的目的和意义由于互联网发展迅速,人们的工作和生活也越来越离不开信息网络的支持, 而聊天室是人们最常见, 最直接的网上交流的方式。本设计的主要目的是为了满足人们通讯交流的便捷,实现灵活、全面的音、视频信
9、息的传递和服务。课题的主要任务是设计在局域网里进行聊天的应用软件。本系统开发采用C/S(Client/Server)模式,通过客户机与服务器结构,在MyEclipse开发环境下,使用Java编程语言进行本软件的开发。本文将设计与实现基于Java多线程和Socket技术的QQ聊天系统。1.3 对现阶段聊天软件的分析MSN Messenger、QQ、Skype、网易泡泡(POPO)、ICQ(“I seek you”)等是现在网络上比较流行的几款在线聊天软件,它们都具备在Internet上聊天、发送消息和文件传送等功能。通过对几种流行的在线聊天软件介绍,我们可以总结出:这几种聊天软件在常用功能上基本
10、差不多,包括:文字、语音、视频、收发文件等;做为普通网民安装一种就可以了。由于这几种聊天工具之间是不可以相互连接、相互对话,为了满足各路网络游侠的爱好和习惯,因此才会使用多种聊天工具,这就是在线聊天软件所存在的缺陷。1.4本系统优势及开发方案传统的局域网聊天软件,大部分显示层和业务逻辑层混杂在一起,对于系统的使用和维护管理非常困难;并且,不管是哪种在线聊天软件,它们最大的缺陷就是服务器固定的,用户必须连接上指定的服务器才能进行聊天等操作。本系统基于Java编程语言开发,通过将业务逻辑层、显示层分离,为系统开发提供了可扩展性和易维护性。并解决了上述的各种难题。本课题设计方案包括:系统需求分析,系
11、统总体设计、业务流程设计,服务器端和客户端设计,系统测试。本系统基于C/S架构设计,采用J2SE语言开发。将显示层和业务逻辑层分层设计,两层各司其职,只需更改需求变化的层中的业务逻辑代码而不会影响到其它层中的代码;本系统选择自定义文件类型存储用户聊天日志以及服务器操作日志,确保聊天记录安全性,这样可大大增强了系统的健壮性和可维护性以及可移植性。第二章 关键技术概述2.1 Java语言概述Java是一种电脑编程语言,拥有跨平台、面向对象、泛型编程的特性。Java是由Sun微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented)的程序语言。2.2 Java Swing
12、简介Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。Swing是一个标准的MVC结构。 ComponentUI代表View, 负责描画组件。 组件尤其Model层,比如JTextField的Document,JTable的TableModel,JTree的TreeModel等等。 而Control可能不是很明显, 我们或许可以简单的将其Event机制看作一个Swing团队开发给开发者的Controll
13、er。第三章 系统分析系统需求分析是整个开发过程的第一个阶段,也是最重要的一步。为了确定本系统的业务流程和每个功能点具体的功能实现,通过分析,我为开发系统制定了以下合理的方案和需求分析:3.1 需求分析聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务器端的任务:1. 服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。2. 服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。以上就是服务器端最主要的两个任
14、务。不难看出,服务器端的任务并不复杂。客户端应该完成的工作包括:1. 与服务器端建立通信通道,向服务器端发送信息。2. 接收来自服务器的信息。相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。3.2 功能分析首先是确定本系统的主要功能类别,及其子功能模块。通过分析,本系统要实现的功能如下:用户注册、登录;查找好友;私聊、群聊;查看个人资料查看好友资料;文件传送;查看聊天记录。3.2.1 用户注册和登录1.注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如用户的账号(必须为6-10个字符),昵称,性别,籍贯,个人资料等,接受
15、完毕后,便通过JDBC与后台MYSQL数据库连接,然后向数据库添加记录。客户端收到服务器返回的信息后,便显示主登陆窗口。2.登陆在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器登录信息,服务器收到后,开始通过JDBC读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。然后客户端向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在数据表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的昵称,号码。登陆流程结束客户端主窗体错误提醒服务器监听登陆验证发送请求有连接请
16、求登陆成功没有响应连接失败注册图 3.1 客户端用户登录流程3.2.2 聊天功能分析1.私聊私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息,先判断B是否已经在线,如果在线就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。2.群聊群聊,就是多人一起聊天。过程与私聊差不多。唯一的不同就是服务器会将信息转发给指定群的所有成员。业务流程:编辑消息内容接收消息读取聊天记录显示聊天记录显示消息发送消息结束操作图3.2 客户端聊天流程图3.2.3发送接收文件功能描述:发送文件给指定用
17、户,用户接收文件,保存在指定目录。业务流程:选择用户选择文件发送文件监听接收文件监听接收文件接收文件结束中断接收中断发送文件取消取消发送接收图 3.3 客户端维护聊天记录流程3.2.4 查看聊天记录功能描述:显示聊天历史记录,清除聊天历史记录,将聊天记录导出文件。业务流程:清除聊天记录导出聊天记录读取聊天记录清除聊天记录清除聊天记录结束操作显示文件信息返回错误文件是否存在YN图 3.4 客户端维护聊天记录流程3.2.5启动、停止服务功能描述:自动设置服务器端套接字,启动服务后监听客户端的请求,同时显示连接状态和接收请求的信息。向客户端发送消息,关闭服务器端的套接字,断开与客户端的连接,显示服务
18、器状态。业务流程:启动服务监听客户端显示请求内容结束接收请求无请求图3.5 服务器端启动服务流程停止服务向客户端发送消息断开与客户端连接结束操作图3.6 服务器端停止服务流程3.2.6 查看好友资料用户登录以后,想在客户端得到好友的资料并显示在聊天主界面上,可以把好友的账号发送到服务器进行数据库连接从而得到该用户的信息,并发送到客户端进行显示。登录系统点击好友图标选择好友资料显示好友资料信息图3.7 查看好友资料3.3系统开发环境MyEclipse 是一个十分优秀的用于开发Java、J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支
19、持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。本系统开发平台将选用MyEclipse进行编码实现。第四章 系统概要设计4.1 系统用例图4.1.1 客户端用户用例图图4.1 客户端用户用例图4.1.2 服务器端管理员用例图图4.2 服务器端用例图4.2 系统功能模块设计本系统设计包括概要设计和详细设计,概要设计的主要任务是概要地设计软件的整体结构,也就是要确定系统每个功
20、能是由哪些模块组成,以及这些模块的相互关系。详细设计包括业务对象模型设计、功能逻辑设计和界面设计等工作,详细设计是系统实现的依据,需要认真的考虑所有的细节。详细设计的根本目标是确定系统功能模块的具体设计方案,并得出对系统的精确描述,从逻辑上实现系统每个模块的功能,设计出简明易懂的处理过程,为编码实现奠定基础。本系统涉及到一个服务器端和N个客户端。客户向服务器发送请求,服务器对请求作出响应。客户尝试与服务器建立连接。一旦连接建立起来,客户和服务器就可以通过套节字进行通信。本系统主要分为两个功能模块:服务器端功能模块和客户端功能模块。此外还增加了登陆功能和文件传送功能。聊天系统服务器客户端文件传送
21、截图图4.3 系统全局功能模块图4.2.1 系统功能模块图服务器开始监听广播系统消息保存聊天日志显示在线用户关闭监听显示系统配置退出系统图4.4 服务器端功能模块图客户端登陆/退出密码找回公聊/私聊个人及好友资料操作文件传送显示好友退出系统图4.5 客户端功能模块图第五章 系统详细设计由于服务器端是整个系统的核心,它包含了监听客户端请求、转发客户端消息和控制服务的开启和关闭等功能。5.1 服务器设计思想设计服务器,应考虑以下问题:安全性:服务器的安全性包括两部分,一是服务器端软硬件配置上的安全性,比如防止系统漏洞;二是服务器和客户端通讯协议的安全性设计,防止通过协议本身导致服务器被非法攻击等。
22、服务器在监听到一个客户以后,它就会创建一个线程去管理这个用户。至于如何去管理这个用户,服务器端不做任何干涉,完全由监听线程决定。监听线程主要对客户端的请求进行响应,做到有求必应。接收到信息后,首先判断该信息是哪种类型,如果是要访问数据库服务器,则直接根据发送信息内容操作数据库。如果是聊天内容,服务器会将该信息再次转发到目的地。这些判断将会全放部在一个线程的run方法中。5.2 服务器端界面图5.1 启动服务器主界面5.2.1 服务器端各主要类的定义及其功能ServerStart:这个类是服务器端程序运行的入口,EventQueue.invokeLater()是Swing程序启动的标准做法,Sw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2SE QQ 聊天 系统 设计 本科毕业 论文
链接地址:https://www.31ppt.com/p-2387381.html