毕业设计论文-基于java即时聊天系统的设计与实现内容摘要:

设备上,如跨越 IBM 个人电脑、 MAC 苹果计算机、各种微处理器硬件平台,以及Windows、 Unix、 OS/ MAC OS 等系统平台,真正实现“一处编写,到处运行”。 Java 非常适合于企业网络和 Inter 环境,并且已成为 Inter 中最具影响力、最受欢迎的编程语言之一。 与目前常用的 C++语言相比, Java 语言简洁得多,而且提高了可靠性,除去了最大的程序根源错误,此外它还有较高的安全性,可以说它是有史以来最为卓越的编程语言。 Java 语言编写的程序既是编译型的,又是解释型的。 程序代码经过编译之后转换为一种称为 Java 字节码的中间语言, Java 虚拟机( JVM)将对字节码进行解释和运行。 编译只进行一次,而解释在每次运行程序时都会进行。 编译后的字节码采用一种针对 JVM 优化过的机器码的形式保存,虚拟机将字节码解释为机器码,然后在计算机上运行。 Java 语言的特点包括 :简单、面向对象、分布性、可移植性、解释型、 安全性、健壮性、多线程、高性能、动态。 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、 EJB、扩展数据库以及各种应用服务器的集成支持 [4]。 MyEclipse 也全面支持各种主流的第三方框架,让你能够快速高效地进行开发工作。 此外, MyEclipse 还全面支持各种基于 Eclipse 平台的插件,允许你自由定制或扩展个性化功能。 MyEclipse 全面支持 Eclipse 开源平台的所有功能特性,如果你熟悉 Eclipse,那么你能够轻松地上手 MyEclipse,包括熟悉的 Eclipse 快捷键,而且使用 MyEclipse 完成某项任务往往要比使用 Eclipse 更加快速、简单 [5]。 Oracle 简介 Oracle Database,又名 Oracle RDBMS,或简称 Oracle。 是 甲骨文公司 的一款 关系数据库管理系统。 它是在数据库领域一直处于领先地位的产品。 可以说 Oracle 数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环 境。 它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 ORACLE 数据库系统 是美国 ORACLE 公司( 甲骨文 ) 提供的以 分布式数据库 为核心的一组软件产品,是目前最流行的客户 / 服务器(CLIENT/SERVER)或 B/S 体系结构 的数据库之一。 比如 SilverStream 就是基于数据 6 库的一种中间件。 ORACLE 数据库是目前世界上使用最为广泛的 数据库管理系统 ,作为一个通用的数据库系统,它具有完整的 数据管理 功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了 分布式处理 功能。 但它的所有知识,只要在一种机型上学习了 ORACLE 知识,便能在各种类型的机器上使用它 [7]。 网络通信协议简介 网络通信协议为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。 网络通信的层次结构和网络通信的协议,是开发网络程序的基础。 目前在网络编程方面最常用的是 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 类向程序员屏蔽了服务器和客户端之间的物理硬件指标和底层的连 7 接方式,所以我们在使用 Socket 类开发网络程序时,可以简单地调用其提供的方法来传输数据,而不必关心数据流的传输和接收方式。 C/S 模式 20世纪 90年代出现并迅速占据主导地位的一种计算模式为客户机 /服务器模式,简称为 C/S 模式,它实际上就是把主机 — 终端模式中原来全部集中在主机部分的任务一分为二,保留在主机上的部分负责集中处理和汇总运算,成为服务器;而下放到终端的部分负责为用户提供友好的交互界面,称为客户机。 相对于以前的模式, C/S 模式最大 的改进是不再把所有软件都装进一台计算机,而是把应用系统分成两个不同的角色和两个不同的地位:一般在运算能力较强的计算机上安装服务器端程序,而在一般的 PC 上安装客户机程序。 正是由于个人 PC 机的出现使客户机 /服务器模式成为可能,因为 PC 机具有一定的运算能力,用它代替了上面第一种模式的哑终端后,就可以把主机端的一部分工作放在客户机端完成,从而减轻了主机的负担,也增加了系统对用户的响应速度和响应能力 [9]。 客户机和服务器之间通过相应的网络协议来进行通讯。 客户机向服务器发出数据请求,服务器将数据传送给客户机进行计算, 计算完毕,计算结果可返回给服务器。 这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此物理上在客户机和服务器两端是易于扩充的。 C/S 模式是目前占主流的网络计算模式。 8 第 3 章 需求分析 系统基本功能描述 客户端可以实现注册,登录,即时聊天,相互之间收发文件,发送截图,查看历史聊天记录等功能。 收发消息时,可以实现离线接收。 服务器端应当建立一个 ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接 (包 括判断没有响应的连接超时 )。 服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。 在后台管理系统,可以到对用户进行增删改查,查看在线用户,和踢用户下线。 系统需求分析 聊天系统不外乎两个方面,服务器端和客户端。 简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。 首先来看一下服务器端的任务: ( 1) 服务器端应当建立一个 ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接 (包括判断没有响应的连接超时 )。 ( 2) 服务 器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。 以上就是服务器端最主要的两个任务。 不难看出,服务器端的任务并不复杂。 客户端应该完成的工作包括: ( 1) 与服务器端建立通信通道,向服务器端发送信息。 ( 2) 接收来自服务器的信息。 相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。 数据流图 数据流图( DFD),是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流 向和逻辑变换过程。 是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法 [10]。 9 图 31 系统顶层数据流图 图 32 客户端数据流图 图 33 服务器端数据流图 10 数据字典 数据字典的作用主要是对数据流程图中的数据项,数据结构,数据流,处理逻辑,数据存储和外部实体等方面进行具体的定义 错误 !未找到引用源。 建立数据字典的目的是为了保证全 局数据的一致性和准确性。 数据字典配以数据流程图就可以从图形和文字两方面对系统做出完整的定义和描述 错误 !未找到引用源。 ( 1)数据项: MSG_ID 含义说明:消息 ID 别名:消息 ID 类型: NUMBER ( 2)数据项: MSG_CONTENT 含义说明:消息内容 别名:消息内容 类型: VARCHAR2 长度: 2020 ( 3)数据项: MSG_SENDFROM 含义说明:消息发送者 别名:消息发送者 类型: INTEGER ( 4)数据项: MSG_SENDTO 含义说明:消息接收者 别名:消息接收者 类型: INTEGER ( 5)数据项: MSG_SENDTIME 含义说明:消息发送时间 别名:消息发送时间 类型: DATE ( 6)数据项: MSG_REMARK 含义说明:备注 别名:备注 类型: VARCHAR2 长度: 3000 ( 7)数据项: MSG_TYPE 含义说明:消息类型,如是群聊消息还是私聊消息 别名:消息类型 类型: VARCHAR2 长度: 2 11 ( 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 含义说明:最后一次登录 别名:最后一次登录 12 类型: 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 含义说明:用户生日 别名:用户生日。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。