基于JAVA聊天系统设计与实现_第1页
基于JAVA聊天系统设计与实现_第2页
基于JAVA聊天系统设计与实现_第3页
基于JAVA聊天系统设计与实现_第4页
基于JAVA聊天系统设计与实现_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录摘要1Abstract2第一章 绪论11.1 课题背景11.2 研究现状11.3 本文的主要工作21.4开发平台及环境介绍2第二章 系统分析32.1功能要求32.2系统结构图32.3 性能要求4第三章 系统设计63.1 数据库设计63.2 服务器端软件结构73.3 客户端软件结构133.4 测试运行16总结17参考文献18摘 要随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天

2、客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java语言进行编写,首

3、先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统AbstractWith the rapid development of Internet, network chat tool has been used as an important tool for information exchange, a growing number of Internet users of all ages. At present, there are many very good chat tools, which is widely used in Netmeeti

4、ng, Tencent QQ, MSN-Messager and so on. The system includes the development of a network chat server program and a network chat client program in two aspects. The former through the Socket socket establish a server, server can read, forwarded from client information, and can refresh the list of user

5、s. The latter by establish a connection with the server, to client and client information exchange. Which uses a local area network communication mechanism, through direct Thread class inheritance to create multiple threads. Development of the computer network programming to the basic knowledge, suc

6、h as the TCP / IP protocol, client / server mode ( Client / Server mode), network programming design method. Network programming in the information read, send, is the use of flow to achieve information exchange, which is introduced to implement a systematic analysis of information flow, including so

7、me basic software engineering methods. Through the analysis of these cases, the LAN chat tools using Eclipse as the basic development environment and Java language preparation, first in a short period of time can build up the system application prototype, then, for the initial prototype system, revi

8、ses and the improvement unceasingly, until forming the feasible system.第一章 绪论1.1 课题背景随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持, 而聊天室是人们最常见, 最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的C/S聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,易于维护和更新,其运行所需环境及其工作流程和各个功能控件的

9、工作原理将在本文依次介绍,并且文中提供了部分程序源代码。本文中将讨论一种基于Socket的即时通讯工具的设计与实现方法。 1.2 研究现状 即时通讯软件属于娱乐型软件,它已经是众多网民的必备软件。即时通讯软件是通过即时通讯技术来实现在线聊天、交流的软件。目前有2种架构形式,1、一种是C/S架构,采用客户端/服务器形式,用户使用过程中需要下载安装客户端软件,典型的代表有:QQ、百度HI 、Skype QQ VS GU、Gtalk、新浪UC、MSN等;2、采用B/S架构,即浏览器/服务端形式,这种形式的即时通讯软件,直接借助互联网为媒介、客户端无需安装任何软件,既可以体验服务器端进行沟通对话,一般

10、运用在电子商务网站的服务商,典型的代表有Websitelive 、53KF、live800等。1.3 本文的主要工作本文主要工作是设计一个基于WINDOWS平台的即时通讯工具,然后阐述本软件的功能、并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。1.4开发平台及环境介绍本系统采用jdk1.6平台开发,JDK(Java Development Kit)是Sun Microsystems针对Java开发员的工具。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工

11、具和Java基础的类库。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。本系统正是采用了比较新的版本来开发。由于jdk对电脑硬件配置要求不是很高,所以只要内存在256M以上配备了windows的计算机就可以流畅的使用jdk1.6。第二章 系统分析2.1功能要求(1)用户端之间的信息发送,本程序需要实现的最基本的功能(2)在线用户主机名列表的维护。(3)在C/S模式中,服务器与客户端是相互依赖的。在客户端启用以后,需要查看服务器端是否在线,服务器在线才能正常使用客户端,如果服务器不在线,则在检测一定次数以后自动退出客户端程序。在使用过程中,客

12、户端在指定时间内未向服务器端发送信息的,服务器认为客户端下线;客户端在一定时间内未收到服务器端信息的,认为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有退出的则自动关闭客户端程序。2.2系统结构图如图图2-1,采用三层C/S模式,使用Java语言开发,后台数据库采用Access。客户间通讯使用UDP协议,客户端与服务器之间的通讯采用TCP/IP协议。图2-1 聊天系统结构图2.3 性能要求首先要求程序要可靠,可以应付种种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。

13、程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。第三章 系统设计3.1 数据库设计本软件的服务器端需要用到数据库,二用户端则无需安装任何数据库。这里选择的

14、数据库平台暂时定为Access,数据库文件为MyQQ.mdb,采用JDBC-ODBC桥连接,ODBC数据源名称也为myqq。在数据库中,共有三张表,每张表的表名以及字段描述如下:FRIEND表该表记录了每个用户所拥有的好友号码,字段说明如表3.1所示。字段名类型长度含义主键否QQNUM长整型自动用户账号否FRIEND长整型自动该账号好友否表3-1QQNUM表该表记录了所有合法的账号,字段说明如表3-2所示。字段名类型长度含义主键否ID长整型自动用户编码是QQNUM长整型自动账号否USER_INFO表字段名类型长度含义主键否QQNUM长整型自动用户账号是NAME文本16用户名否PASSWORD文

15、本10密码否STATUS整型自动用户状态否IP文本16IP地址否INFO文本100描述信息否PIC文本50头像名否SEX文本2性别否EMAIL文本50邮箱地址否PLACE文本50联系地址否BIRTHDAY文本50生日否PORT整型自动通信端口否3.2 服务器端软件结构 客户与服务器的通信通过Socket(TCP/IP)的方式连接。服务器采用多线程方式满足多用户的请求,默认情况下,每个线程处理一个用户的请求。并通过创建一个ServerSocket对象监听来自客户的连接请求,默认端口为5638,然后无限循环调用accept()方法介绍客户程序的连接。服务器通过JDBC-ODBC与后台数据库连接。服

16、务器的主类是ServerForm,此类启动后是一个图形界面,它能完成一些功能:启动Server;以列表的形式显示上线用户的信息和上线的总人数;可以将某一用户断开与服务器的连接,并释放占用的服务器资源;设置一文本区域,显示服务器的工作日志,当程序退出时,能将这些日志写入文件中,文件名以“日期+时间”命名。 服务器端程序的功能结构如图3-1所示。服务器端程序用户下线处理处理好友删除处理更新信息处理好友添加处理查找用户处理用户登录处理注册新用户图3-1服务器端程序的功能结构示意图服务器端程序运行界面如图3-2所示。图3-2 服务器端程序运行界面为了完成这些功能,需要用到下列基本方法。这里以伪代码的形

17、式描述这些方法的基本流程。处理注册新用户的方法:registerNewUser()获得数据库连接对象读取客户端用户的注册信息直线SQL语句返回注册用户的QQ号码向客户端发送用户的QQ号码向客户端发送结束信号处理用户登录的方法:Login()获得数据库连接对象读取用户名和密码执行SQL语句并判断是否为合法用户If(是合法用户)注册用户的IP地址查找好友返回成功信息 else 返回登录失败的消息处理用户查找其他用户方法:queryUser()获得数据库连接对象读取用户端发送的查找信息执行SQL语句If(找到用户) 返回用户的信息else 返回错误信息处理用户添加好友方法:addFriend()获得

18、数据库连接对象结束客户端发来的客户及其好友号码将客户和好友的号码插入点FRIEND表中If(执行成功) 向客户端发送成功信息else向客户端发送失败信息处理用户删除好友方法:deleteFriend()获得数据库连接对象接受客户端发来的客户及其好友的号码执行SQL语句(在FRIEND表中删除此信息)If(执行成功) 向客户端发送成功信息else 向客户端发送失败信息处理用户更新自己信息的方法:updeteOwnInfo()获得数据库连接对象读取客户端发送的信息将此信息写入数据库If(执行成功) 向客户端发送成功信息else 向客户端发送失败信息处理用户下线的方法:loginOut()获得数据库

19、连接对象获得客户端号码将用户的在线状态改为下线并清空其IP地址If(执行成功) 向客户端发送成功信息else向客户端发送失败信息服务器类框架public class Server implements Runnable定义套接口定义输入输出流public Server(Socket s,) 获得传递参数 创建输入输出流public void run()while(bool)获得客户端的输入字符串判断字符串的命令类型根据命令调用相应的处理方法3.3 客户端软件结构客户通过Socket建立于服务器的连接。服务器建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦受到客户端的连接请求,服务器

20、accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,例如注册、登录、查找好友等,服务器受到来自客户的请求后,针对不同的消息处理请求,做出不同的响应。虽然UDP协议不是可靠的协议,但是对于网络聊天程序而言,可靠性并不太重要,UDP具有通讯速度快的优点,所以客户间发送信息采用UDP协议。用户登录时,通过类DatagramPacket和DatagramSocket创建UDP包,其中包含了本地介绍端口以及发送端口,通过取得好友的IP地址向好友发送消息和接受消息。当用户通过UDP受到消息后,可以通过DatagramPacket的方法InetAddress getAddress

21、()得到对方的IP地址,通过对好友列表比较以判断是谁并提示用户受到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就显示受到陌生人的消息。客户端与服务器交互的流程如图3-3所示。创建SocketServerSocket发送请求类型发送信息发送完毕接收信息做出处理等待客户请求做出相应处理接收信息停止接收返回结果结束执行操作数据库连接信息请求命令信息完毕信号结果结束信号客户端服务器端图3-3 客户端与服务器端交互流程客户端的程序框架如图3-4所示。客户端程序登录模块主界面注册模块发送消息添加好友查找好友删除好友查看信息更改信息上线提示下线提示图3-3 客户端程序框架登录模块登录模块是本

22、软件客户端执行的第一个模块。用户在界面上输入自己的账号和密码,必要时还需要输入服务器的IP地址和端口号。程序用此来与服务器建立连接,告诉服务器等去登录的账号和密码。服务器收到后,读取数据库中的信息,然后与用户输入的信息比较,如果相同,就向客户返回成功消息并将其Status字段设为1,表示上线及注册其IP地址,否则返回错误标志。主界面如果登录成功,登录程序将打开主程序窗口。主程序将向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的FRIEND表,得到好友的号码后,再在USER表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,例如,头像昵称等。该界面主要有5个功能: 更新功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论