基于TCPUDP协议的局域网即时通信工具的设计与实现.doc_第1页
基于TCPUDP协议的局域网即时通信工具的设计与实现.doc_第2页
基于TCPUDP协议的局域网即时通信工具的设计与实现.doc_第3页
基于TCPUDP协议的局域网即时通信工具的设计与实现.doc_第4页
基于TCPUDP协议的局域网即时通信工具的设计与实现.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

题 目:基于TCP/UDP协议的局域网即时通信工具的设计与实现姓 名: 学 号: 专 业:网络工程指导教师: 2011年 9 月摘 要随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。随着信息技术的发展,即时通信(Instant Message)软件应运而生,即时通信工具让我们冲破了地域的界限,随时随地和各地的朋友沟通联系,它们已经成为新时代人们生活和工作中不可缺少的伙伴!即时通信(Instant Message),由于其具有实时性、跨平台行、成本低、效率高等优点而受到广泛的使用。设计并实现一个能够处理多用户进行实时、安全的即时通信工具具有较强的现实意义。本毕业论文课题主要研究的就是基于TCP/UDP协议的局域网内即时通信工具的开发。我们根据其体系结构与设计原理开发出了界面简洁、方便易用的即时通信工具。它的主要功能有:即时聊天、文件传输等。在该即时通信工具中,传输都用到了TCP/IP协议,客户端之间采用的是点到点技术进行通信。本文首先概述了即时通信工具的背景,其次介绍了软件开发的环境和开发技术和开发工具,给出了系统的框架结构,然后介绍了该即时通信工具的设计实现,最后进行了简单的测试。本文设计并实现了基于局域网的简单即时通信系统,系统采用C/S模式,底层通信公告SOCKET套接字接口实现,服务器负责客户端的登录验证,好友信息的保存和消息的发送。客户端采用点对点方式实现消息传递,并能实现文件的传输。本系统基于JAVA,使用Eclipse等作为开发工具完成即时通信系统的设计。关键词:局域网 即时通信 文件传输 TCP协议 UDP协议目 录第一章 绪论11.1 研究背景及研究意义11.2 即时通信的基本知识21.3 TCP与UDP的相关知识2第二章 相关工具及技术介绍52.1 系统开发环境52.2 系统开发所用工具52.2.1 Eclipse的简介及运用52.2.2 Java的简介及运用62.3 Socket的简介72.4 C/S结构与WINDOWS SOCKETS网络编程8第三章 系统需求分析与总体设计113.1 即时通信工具需求分析113.2 性能分析113.3 系统设计的目标123.4 系统功能模块设计123.5总体设计133.5.1服务器端基本功能设计133.5.2客户端基本功能设计14第四章 数据库设计164.1 数据库的基本概念164.2 概念结构设计164.3 逻辑结构设计194.4 物理结构设计194.5 数据库运行与实现20第五章 系统详细设计与实现215.1 用户管理215.1.1 新建用户模块215.1.2 登录模块215.1.3 删除好友模块225.2 用户登录获取信息模块225.3 查找用户模块225.4 添加好友模块235.5 建群模块235.6 即时聊天模块245.6.1 文件传输模块245.6.2 语音聊天模块245.7 服务器端的具体实现255.8 客户器端的具体实现265.8.1 新建用户275.8.2 登录界面285.8.3 即时聊天界面295.8.4 文件传输界面305.8.5 用户登录后获取好友信息视图345.8.6 查找好友视图345.8.7 添加好友视图355.8.8 建群视图36结 束 语37致 谢38参考文献39第一章 绪论在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各方面发挥着重要的作用。互联网上存在大量的信息,人与人之间的沟通、信息交换显得尤为重要。人们一直在寻找一种方便、低廉的交流信息工具,因此网上聊天便成为人们的首先,而一个好的的即时通信工具是操作简单、方便,界面美观大方、人性化、节约系统资源。一个好的即时通信工具不仅仅是方便了人们的生活,同时也给企业带来了商业利益,很多事情都可以通过进行聊天而解决、通过服务器的消息传输让用户能够很快的获取信息,节约了时间也创造了更多的利益。1.1 研究背景及研究意义随着社会经济技术的发展,即时通信在全球的应用越来越广泛,从以前最开始的简单通信到现在视频聊天、查资料、看电视等功能的应用,即时通信已经成为人们生活当中必不可少的一部分,即时通信不仅仅应用到生活当中,影响着人们的一切,而且现在也应用到各个领域影响着整个世界。随着网络技术的发展,即时通信正在成为在线活动中不可或缺的业务,即时通信软件不仅仅只限于用户间的聊天活动,运营商已经开始利用即时通信平台不断地进行业务的扩张和整合,充分的运用到整个企业,整个社会当中,而即时通信软件的诞生也给企业的管理带来了新的思路和手段,推动了企业工作效率的提高,降低了办公费用,引起了工程应用领域的研究热潮。即时通信的实时交互、低廉资费、方便快捷让其成为继电话、邮件等通讯工具之后的又一个充分融入现代企业沟通的互联网工具。但是任何事务在发展的同时也必然会带来各方面的问题,比如最常见的安全问题,即时通信的优点就是能够实时交互,马上能够知道对方的一切,然而这样也很容易照成安全隐患问题,一旦没有做好加密、防火墙工作,数据、资料等就很很容易遭到泄露,被恶意篡改、窃听,从而导致对方收到的信息是错误的,这样也会给工作、生活等方面带来困难。所以当前,研究网络即时通信系统是当今网络编程方面的一个热门课题。即时通信正成为在线活动中不可或缺的业务。小至个人、企业大至国家、世界,演化着即时通信的飞速变化,日益改变丰富着人们的生活。而在经济技术日益发展的情况下,对即时通信的需求也越来越迫切,所以在此前提下,就急需一种两全其美的解决方案。 1.2 即时通信的基本知识随着信息技术的发展,即时通信(IM)软件应运而生,即时通信工具让我们冲破了地域的界限,随时随地和各地的朋友沟通联系,它们已经成为新时代人们生活和工作中不可缺少的伙伴!即时通信(IM)是指能够即时发送和接收互联网消息等的业务。1998年即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前,微软、AOL、Yahoo等重要即时通信提供商都提供通过手机接入互联网即时通信的业务,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。即时通信是一个基于局域网平台而设计的系统,其开发主要包括后台数据库的建立、维护以及前端应用程序的开发两个方面。前者要求建立起数据一致性、完整性、安全性高的库,后者则要求应用程序功能完备,能够题供前台顺利运行,易使用等特点。即时通信具有:管理员设置客户端的单位组织结构信息;客户端不需自行添加联系人;联系人之间能够发送消息;联系人之间能够互相传送文件;管理员能够建立现了人分组,加入分组后的联系人允许互相通信;分组成员之间可以群发消息等功能。1.3 TCP与UDP的相关知识Java网络编程中有两种不同的通讯协议,分别是TCP(面向连接)与UDP(面向无连接),两种协议各有优缺点。TCP:是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。TCP/IP协议并不完全符合OSI的七层参考模型,而是采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMIP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传输服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据封包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络结构层:对实际的网络媒体的管理,定义如何使用实际网络来传送数据。建立TCP连接的工作原理:一个TCP连接必须要经过三次“对话”才能建立起来,简单的介绍一下:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 UDP:是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。举例:一个UDP的简单应用。我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。以下是TCP面向连接框架1.1Socket(port)Accept() Socket() 等待客户连接请求 阻塞 建立连接 Read()Write() 处理服务请求 服务请求 Write()Read() 服务响应 Close()Close()图1.1 TCP面向连接框架以下是UDP非连接面向框架图1.2服务器端Datagramsocket(port) 客户端 Datagrampacket() Datagramsocket() Datagrampacket() Receive() Send() Send() 等待客户连接请求服务请求Receive() 处理服务请求 服务应答 Close()Close() 图1.2 UDP非面向连接框架第二章 相关工具及技术介绍2.1 系统开发环境由于日趋发展的信息技术,对通信工具的要求也逐渐提高,而快速的成长当中带来的影响也是深远的,那么如何在这样的环境下设计一个安全系数高、方便快捷的通信工具呢,这就是本系统所要解决的问题。实现局域网用户之间的即时交流与文件传输,建立网络即时通信安全机制,保证信息传送的及时性和安全性。本系统采用基于java平台的Eclipse工具来设计并实现这一通信工具的设计与实现。2.2 系统开发所用工具系统开发平台:Eclipse7.0 SQL Server 2005系统开发语言:Java运行平台:Windows XP运行环境:JDK Eclipse的简介及运用Eclipse是一种基于 Java 的可扩展开源开发平台。就其自身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括为人熟知的 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。更舒服的是,利用Eclipse中的MyEclipse插件来搭建一个动态JSP程序,快速,简单、方便。2.2.2 Java的简介及运用技术上采用sun公司的java语言,该语言有很多有点,比如多线程、网络流概念、异常捕获处理、安全性以及速度与性能等方面,并且具有可以一次编写、到处运行的跨平台优点。多线程:多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立,线程又称为轻量级进程,多线程技术允许你在一个应用程序中启动多个执行轻量程序,使多段程序同时竞争CPU资源,从而提高系统效率。而对于网络通讯工具来说,多线程的特性是必须的,不仅是为了效率,而且可以实现同时处理多个请求。网络流:java中的网络通讯以及文件的读取都是以一种流的概念来理解的,这样,网络上数据的传输其实就等同于看成一台机器上文件的读取,有利于理解与编写运用程序,java类库中提供了丰富的IO流类资源以及网络编程类资源,软件开发人员可以很方便的编写网络应用程序。例外处理:Java通过面向对象的方法来处理例外。在一个方法的运行过程中,如果发生了例外,则这个方法生成代表该例外的一个对象,并把它交给运行时系统,运行时系统寻找相应的代码来处理这一例外。我们把生成例外对象并把它提交给运行时系统的过程称为抛弃(throw)一个例外。运行时系统在方法的调用栈中查找,从生成例外的方法开始进行回朔,直到找到包含相应例外处理的方法为止,这一个过程称为捕获(catch)一个例外。所以,java的例外处理使非常方便的。跨平台:Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。2.3 Socket的简介Socket,简称套接字,用于实现网络上的客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点称为套接字,套接字是在比较低的层次上通信的。具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服务器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个socket建立连接,客户端通过写socket来通知服务器,以读socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个sockt,通过读写和客户端通信。Socket程序的工作过程:建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。数据通信:利用虚拟连接通道传输数据信息进行通道。关闭:通信结束时,再将所建的虚拟连接拆除。具体如下图2.1:服务器1服务器socket 3客户端2监听 4接收6写5读5读6写 7关闭7关闭图2.1 socket工作过程三次握手:第一次握手:原机主发送一个带有本次连接的序号的请求的一个数据帧。第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有一个本次连接序号和源端机连接序号号的确认。第三次握手:源端机收到含有两次初始序列号的应答后,在向目的主机发送一个带有两次连接的序列号的确认2.4 C/S结构与WINDOWS SOCKETS网络编程通常的通信工具,都采用客户端/服务器(C/S)体系结构,C/S结构是这样一种结构:它包括一个客户端(或前端),一个服务器(或称后端),客户端的作用是访问和处理远程服务器上的数据,服务器的作用是接受和处理客户端的数据请求。有时,可能有多个客户向同一个服务器同时请求服务,这就需要服务器决定怎样处理这些请求。Client/Server结构是当前数据库应用程序中极为流行的一种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源,另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。Client/Server模型最终可归结为一种“请求/应答”关系。一个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。在客户发出一个请求之前,服务器一直处于休眠状态。一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求作出所需要的应答,如图2.2所示。工作站 工作站服务器工作站 工作站工作站 图2.2 客户端/服务器通信结构视图在IP连接领域有两种通信类型:面向连接的(Connection-oriented)和无连接的(Connectionless)。在面向连接的套接字中,使用TCP协议来建立两个IP地址端点之间的会话。一旦建立了这种连接,就可以在设备之间可靠地传输数据。为了建立面向连接的套接字,服务器端和客户端必须分别进行编程。在java包中,有两个专门用户TCP协议编程的类:Socket类和ServerSocket类。这两个类提供了直观的易于使用的属性和方法,从而降低了TCP协议编程的难度。服务器端使用ServerSocket绑定一个端口,然后循环等待,通过accept()方法介绍来自客户端的连接,而客户端则需要知道服务器端的IP地址和绑定的端口号,然后通过Socket创建于服务器端的连接。关键代码如下:服务器端关键代码:Try Server=new ServerSockeet(); Server.setReuseAssress(true) InerSocketAddress address=new InetSocketAddress(“localhost”,监听的端口号); server.bind(address); while(true) Socket client=null; Client=server.accpet();/等到客户端连接 catch(Exception e) e.printStackTrace();客户端关键代码:Socket client=new Socket(“服务器IP”,服务器监听的端口号);C/S模式下Windows socket编程示意图,如图2.3所示。 服务器端,图2.3创建服务器端Socket 服务器端Socket登记某端口 客户端创建客户端Socket监听来自客户端的连接请求 阻塞知道客户端发来连接请求 通过服务器端的地址和端口号想服务器端发出连接请求 建立通信连接 发送请求数据到服务器接收来自于客户端的请求数据 请求数据 处理请求数据 接收响应数据返回处理的数据客户端 响应数据 图2.3 C/S模式下socket编程第三章 系统需求分析与总体设计3.1 即时通信工具需求分析伴随着当今互联网的迅速发展,人们之间的信息交互的实时性能变得越来越重要,传统的电子邮件交互已经不能够满足人们的即时通讯要求,鉴于此种情况打算开发出一款类似于腾讯QQ的即时通讯软件,只要经过注册你便可以获取一个帐号,通过该帐号你可以在客户端登陆,成功登录后便可以在互联网上与你的亲朋好友进行畅谈,由于技术和时间问题,该软件主要提供私聊、群聊、好友管理、群管理等常用功能,其它一些功能比如文件传输、语音聊天和视频聊天等功能,由于技术问题暂时没有实现,可以在该系统的基础上实现这些功能,也可以在此基础上进行更多功能的扩展。根据用户对聊天工具的要求,可以分为以下几点:(1)操作简单方便、界面简洁美观(2)客户端能够注册新用户(3)可以在局域网实现文字和文件的传输(4)可以进行聊天记录保存(5)系统运行稳定、安全可靠3.2 性能分析作为一个简单安全的沟通通信平台,安全及时通信系统需要保证数据通信的即时性以及通信过程和信息存储的安全性,为使用者提供信息安全保证,同时减少系统资源的消耗,保证系统运行的速率。 1.数据通信完整和可靠性:即时通信亦即用户间能实时发送和接收各种信息,包括文本通信和文件传输,其中保证数据的可到达性,保证数据解读的正确性,防止数据丢失和数据错位,从而保证消息传达的可靠性。 2.通信安全性:通信安全是指保证客户之间传送消息和文件的安全,防止数据在传输过程中遭泄密、窃密或被篡改数据。 3.通信效率和公平性:这主要体现在服务器端。服务器需要同时处理所有用户发送的各类信息,并且需要完成数据库存储、读取、更新等操作。需要采用适当的方法提高服务器接受、解读、处理和发送数据的效率,在指定时间呃逆完成需要的通信量,提高系统的即时通信性能,通信保证数据处理的公平性,保证各客服端的信息能够被及时响应和处理。 4.系统可控性:系统可控性是指系统运行期间完成数据存储、数据库备份、系统故障恢复等任务的性能,包括用户注册管理、登陆管理、客户端运行过程中监控等模块的设计。防止重要数据的丢失或被篡改,提高系统的运行可靠性,增强系统使用者的信心。 5.系统稳定性能:系统稳定性包括系统在高通信强度下是否能够正常、及时低处理各客服端的请求和信息,系统在长时间工作状态下是否会出现异常以及系统容错性能等。防止系统崩溃和程序退出,同时降低程序运行中CPU等资源的消耗。3.3 系统设计的目标本课题目标是实现局域网用户之间的即时交流与文件传输等,通过基础的网络SOCKET编程,为局域网内部的即时通信提供一个简单而较安全的解决方案。3.4 系统功能模块设计该系统主要包括三层,客户端,服务器端,以及数据库服务器,客户端用来提供用户的登录,服务器端用来对登录的用户进行管理以及用来处理信息之间的转发,数据库服务器主要存放一些重要的信息。它们之间的关系如下图3.1所示:客户端服务器数据库服务器图3.1系统关系图根据上述需求的描述,对该系统按照功能进行了模块的细化,主要包括用户管理、获取信息、查找好友、添加好友、建群、即时聊天6个模块,还有很多其它小模块,这6个模块是实现该系统的核心模块,模块之间的耦合程度非常低,其中注册模块是通过B/S结构来实现,不需要安装客户端。下图是上述的4个重要模块的用例交互图3.2。系统 用户管理即时聊天建群添加好友查找好友获取信息图3.2 软件结构图3.5总体设计本系统是基于TCP/UDP协议的局域网而设计的即时通信工具,而功能的模块实现主要从客户端和服务器模块方面入手。3.5.1服务器端基本功能设计作为一个多用户的即时通信软件,做好服务器端的各项管理工作显得非常重要。比如,对系统管理员的管理,对用户的管理,数据库数据的管理,以及对服务器的开启和关闭的管理。为了使系统能保持长期的稳定运行,本系统中设置了管理员,对用户以及数据库进行管理和维护。以下是服务器端的功能设计:(1)管理员登录根据系统需求,设置了管理员的等级。针对不同的等级有不同的登录方式。(2)开启服务每一个管理员都具有开启服务程序的功能,这里服务是指专门为用户开启的功能。具体以下几种功能:接收并响应用户登录请求给用户发送好友上、下线通知接收并响应用户申请号码请求接收并响应用户下载好友基本资料请求转发、存储用户给好友的消息接收并响应用户添加好友请求接收并响应用户下线请求接收并响应用户修改个人资料请求给用户发送系统消息(3)关闭服务每一个管理员够具有关闭服务程序的功能。(4)修改管理员密码原始密码是由管理员在创建管理员的时候设定的,而使用者可以根据自己的需要重新修改,从而也提高了系统的安全性。(5)查看管理员(6)创建管理员(7)删除管理员(8)查看用户查看用户是所有管理员都具有的功能,这主要是为管理员开放的功能。(9)创建用户管理员可以任意创建一个还没被注册的账号,管理员可以根据需要创建特定的号码。(10)删除用户管理员可以任意删除用户,当然,只是在有必要的时候才进行删除。(11)关于系统提供一些系统的基本信息。(12)退出系统服务器端系统结构图3.3:服务器端 修改管理员密码关闭服务开启服务管理员登录查看管理员创建管理员删除管理员查看用户创建用户删除用户关于系统退出系统图3.3 服务器端系统框架3.5.2客户端基本功能设计客户端的功能包括:注册新用户、用户登录、登录获取信息、查找用户、添加好友、删除好友、建群、即时聊天、文件传输、语音聊天。客户端系统结构图3.4:客户端用户管理信息管理文件传输好友管理文本聊天文件传输语音聊天用户注册用户登录查看好友信息查看个人信息修改个人信息查找好友添加好友移动好友删除好友修改备注好友聊天群组聊天图3.4 客户端系统框架第四章 数据库设计4.1 数据库的基本概念数据库技术是数据管理的最新技术,是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一。它已成为各行各业存储数据、管理信息、共享资源的最先进最常用的技术。数据库,简单地说就是数据的仓库,即数据存放的地方。数据库系统(database systems),是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。数据库系统DBS(Data Base System,简称DBS)是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。1.数据库的设计包括数据库的结构设计和数据库的行为设计。(1)数据库的结构设计:根据给定的应用环境,进行数据库的模式或子模式的设计。包括数据库的概念设计、逻辑设计和物理设计。又称为静态模型设计。(2)数据库的行为设计:确定数据库用户的行为和动作。又称为动态模型设计。2.数据库设计方法基于E-R模型的数据库设计方法是在需求分析的基础上,用E-R(实体联系)图构造一个反映现实世界实体之间相互联系的模式,然后将此该模式转换成基于某一特定的DBMS的概念模式。4.2 概念结构设计本课题即时通信工具的设计与实现的后台数据库时采用SQLServer作为数据库服务器,在系统中前台与后台管理系统使用同一个数据库来完成各自的任务,两者互不干扰,且又相互联系,这样保证了通信工具的安全性能。它与前台的程序的配合,通过客户端完成数据存储、查询等操作。在通信工具的开发过程中,为了实现各个功能模块和后台管理等功能,在数据库中主要设计了有以下几个表:用户信息表、系统管理员表、好友信息管理表、即时通信表等。得到上面的数据项和数据结构后,就可以设计出能够满足用户需求的尸体,以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含的具体信息,通过相互之间的作用形成数据的相互传递。通信工具对象实体图如图4.1所示:图4.1 通信工具对象实体图管理员信息实体图如图4.2所示:图4.2管理员信息实体图而根据本课题来看,通信工具的设计则在概念结构设计中能够体现出来,用户是一个实体,账号、昵称、性别、年龄、等级等是用户实体的属性。这时,等级只表示用户属于那个级别,不涉及具体情况。用户实体图如图4.3所示:用 户 账号等级昵称年龄性别 等级属于好友 好友人数级别年龄账号昵称性别 图4.3 用户实体图数据库系统总体联系图如图4.4所示:图4.4 数据库系统总体框架图概念结构设计的特点(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换。概念结构设计的方法:设计概念结构的E-R模型可采用以下四种方法(1)自顶向下:首先定义全局概念结构的框架,然后逐步细化(2)自底向上:首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构(3)逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构(4)混合策略:将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。4.3 逻辑结构设计概念结构设计阶段得到的E-R模型是用户的模型,它独立于任何一种数据模型,独立于任何一个具体的DBMS。设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。设计逻辑结构时一般要分三步进行:将概念结构转换为一般的关系、网状、层次模型,并将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换对数据模型进行优化一般的逻辑结构设计分为以下三步:(1).初始关系模式设计;(2).关系模式规范化;(3).模式的评价与改进。此过程有逻辑结构设计完成。即把每一个实体转换为一个关系。首先分析各实体的属性,从中确定主键,然后用关系模式表示。如:图4.5数据库系统总体框架图为例,可转换为关系模式:用户表(账号、头像、密码、个性签名)好友分组(用户、分组名)群(用户、群)群好友分组用户表 群用户个性签名密码头像账号分组名用户图4.5 关系模式图4.4 物理结构设计数据库最终要存储在物理设备上。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理结构设计。物理结构设计的任务是为了有效地实现逻辑模式,确定所采取的存储策略。此阶段是以逻辑设计的结构作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。具体包括数据库文件的数据库组成、数据、表、数据表之间的联系、数据字段类型与长度、主键、索引等。在关系数据库中每个表所对应的字段记录的信息也不相同:JUSERS(用户表)用来存放用户注册时的基本信息Jmessages(消息表)用户存放用户发送的离线消息JFriends(朋友表)用户存放用户的好友信息JFriendsType(朋友类别表)用来存放用户的好友组信息JGroups(用户组表)用户存放用户的群组信息JGroup_Users(用户和组关联表)用户和组之间的关联表4.5 数据库运行与实现数据库投入运行标志着开发任务的基本完成和维护工作的开始,数据库物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务。第五章 系统详细设计与实现5.1 用户管理5.1.1 新建用户模块注册模块是整个系统最基础的模块,当服务器收到用户的注册请求,便开始接受客户传递的消息,诸如客户的昵称、性别、籍贯、头像、个人资料等。便通过与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回起申请号码,客户收到服务器返回的信息后,便打开主程序窗口。以下是业务流程图5.1:客户端登录 框 注册页面服务器 端客户端主界面信息处理填写信息点击注 册 图5.1 新建用户模块通过此模块可以实现密码的找回、密码的修改以及个人信息的查询。5.1.2 登录模块该模块主要给注册成功的用户提供一个登录界面,用户根据自己注册的帐号信息可以与服务器交互,如果提供的信息通过服务器的验证便可以成功的登录系统,成功登录系统之后,可以进行一些操作,比如和好友聊天等,使用该模块之前必须安装一个客户端。登录模块只是一个简单的页面,主要填写用户名、密码之类的信息,登录成功后的主界面包含了系统的大部分功能,比如添加和删除好友、添加和删除好友分组、和朋友聊天等功能。以下是业务流程图5.2:客户端服务器端客户端客户端主界面或者提示错误并进入登陆界面服务器对客户信息处理结果填写信息发送到服务器 图5.2 登录模块5.1.3 删除好友模块登陆系统界面过后,在主界面上则会显示用户分组情况以及好友的基本信息,如昵称、个性签名等,如果在用户的界面上出现了陌生人的信息,用户可以选择直接拉入黑名单,也可以选择直接删除。通过服务器的认证对此请求作出处理,若服务器通过则可以删除好友。以下是业务流程图5.3:客户端已删除好友通过认证批准客户端请求删除信息发送到服务器服务器对客户的请求作出处理服务器 图5.3 删除好友模块5.2 用户登录获取信息模块用户登录系统,进入主界面之后,除了在主界面上显示的信息外,还可以获取其他信息,可以通过在线搜索或者查找等功能获取用户想要的信息,此功能模块能够通过客户端到服务器的响应,快速便捷的查询到想要的信息,便于用户能够更好的运用该系统。以下是业务流程图5.4:客户端系统主界面显示基本信息服务器反应客户端 查找 返回 图5.4获取信息模块5.3 查找用户模块客户登录后,按查找按钮后,开始向服务器发出查找请求,服务器读取数据库表中的请求信息并向客户返回其结果,客户收到后在查找窗口中显示,如果用户选择了一个好友,就向服务器发送添加好友请求,服务器收到后就向数据库表中添加好友的号码,并从表中读取其基本信息返回给客服端,然后客户收到并在主窗口显示该好友。并通过UDP通知该客户,对方收到该消息后,可以选择添加该用户为好友或者不。以下是业务流程图5.5:客户端查找请求发送到服务器服务器端服务器处理该信息客户端通过UDP来添加好友并将资料送至数据库客户端查找结果页面服务器处理请求的结果发送到客户端图5.5 查找用户模块5.4 添加好友模块在客户向服务器发送请求添加好友信息后,如果找到就返回用户服务信息,打开一个用户信息显示界面,该界面会提供一个“添加为好友”按钮,可以进行好友添加,则查找到好友的基本信息,如账号和昵称。如果是你所要添加的好友则点击添加,如不是则添加失败。以下是业务流程图5.6:返回允许结果给客服端客户端客户则选择添加或不添加服务器端认证基本信息服务器端请求添加好友发送到服务器客户端图5.6 添加好友模块5.5 建群模块根据用户的需要,在本系统中可以实现建群功能,用户注册以后群个数为0。用户在执行添加群操作以后,客户端分别将一个这个动作的信息发送给服务器。服务器端的表接受到这个请求,会进行数据库操作,将要添加的群消息插入到数据库中。如果成功,则返回这个群的消息给客服端,否则返回错误提示消息。以下是业务流程图5.7:客户端则可以建群认证成功返回给服务器客户端请求建群信息发送到服务

温馨提示

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

评论

0/150

提交评论