基于SOCKET的即时通信系统设计与实现学士学位论文.doc

上传人:laozhun 文档编号:4022402 上传时间:2023-04-01 格式:DOC 页数:67 大小:603.50KB
返回 下载 相关 举报
基于SOCKET的即时通信系统设计与实现学士学位论文.doc_第1页
第1页 / 共67页
基于SOCKET的即时通信系统设计与实现学士学位论文.doc_第2页
第2页 / 共67页
基于SOCKET的即时通信系统设计与实现学士学位论文.doc_第3页
第3页 / 共67页
基于SOCKET的即时通信系统设计与实现学士学位论文.doc_第4页
第4页 / 共67页
基于SOCKET的即时通信系统设计与实现学士学位论文.doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《基于SOCKET的即时通信系统设计与实现学士学位论文.doc》由会员分享,可在线阅读,更多相关《基于SOCKET的即时通信系统设计与实现学士学位论文.doc(67页珍藏版)》请在三一办公上搜索。

1、摘 要随着网络通信技术和计算机技术的进一步发展,即时通信(Instant Messaging)正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应用中一个热点课题。即时通信软件的诞生,推动了企业工作效率的提高,降低了办公费用,给企业的管理带来了新的思路和方法,并引起了人们对该应用领域的关注。本文在现有的网络通信技术、数据库技术和信息安全技术的基础上设计并实现了新型的企业即时通信系统(EIM,Enterprise Instant Messaging)。该系统为用户提供了一个集文字通信、文件传输于一体的即时通信平台,基本满足了企业用户的要求。在对即时通信系统的服务器端和客户端的主要组成模块详

2、细剖析后,论文研究了各个模块的详细设计和实现方式,分别研究了每个模块的主要功能,并给出了模块运行效果图。系统实现后,对系统进行了功能测试,并分析测试数据。实验数据表明,该系统具有易于实现、可靠性高、易于扩展、传输效率高等特点,达到了预定的设计目标。关键词:即时通信,Socket,通信模型, 文件传输AbstractWith the network communication technology and the further development of computer technology, instant messaging (Instant Messaging) is becomin

3、g an indispensable network of online business activities; its research is a hot topic in Internet applications. The birth of instant messaging software, to promote the work efficiency of the enterprise, reducing business costs, to the enterprises management has brought new ideas and methods, and aro

4、used the concern of the applications. The subject in the existing network communication technology, database technology and information security technology based on the design and implementation of a new type of enterprise instant messaging system (EIM, Enterprise Instant Messaging). The system prov

5、ides users with a set of text communication file transfer, instant messaging platforms in one, basically meet the requirements of business users.Then, the paper of the instant messaging system server and client modules of the main components of a detailed analysis, discusses the detailed design of e

6、ach module and implementation, respectively, described the main function of each module, and gives the module flow chart. Finally, the paper of the instant messaging system designed for server-side performance test, and test data were analyzed. Experimental data show that the system has easy to impl

7、ement, reliable, scalable, and high transmission efficiency, achieved its design goals. Keywords: Instant Messaging, Socket, Communication Model, File Transfer目 录1 绪论11.1 课题背景11.2 研究现状11.3 研究意义21.4 研究内容31.5 论文结构31.6 本章小结42 SOCKET相关技术研究52.1 主流即时通信模型52.1.1 P2P模型52.1.2 C/S模型62.2 即时通信主流的通信协议72.2.1 UDP协议

8、72.2.2 TCP协议82.3 Socket技术82.4 多线程技术92.5 JDBC技术102.6 开发工具介绍112.6.1 Eclipse简介112.6.2 MySQL简介122.6.3 Visio简介132.7 本章小结133 对SOCKET通信需求分析143.1 即时通信系统总体需求143.2 系统功能描述143.3 系统协议的选定143.4系统设计性能分析153.5 本章小结154实现SOCKET通信的方案和关键模块的设计164.1系统总体结构的描述164.1.1系统功能模块设计174.2服务器端工作流程194.2.1客户端工作流程214.3 总体实现方案和类的设计224.4关键

9、模块详细设计与实现234.4.1 利用Socket进行TCP连接234.4.2面向连接的Socket机制的模块设计274.5 文件传输模块284.6本章小结295 对程序进行调试与测试,并对结果进行分析305.1 Socket通信的应用305.2聊天服务器端305. 3聊天客户端325.4聊天系统的运行界面33结论34具体工作如下34参考文献35致谢37附录A英语原文38附录B汉语翻译531绪 论即时通信(Instant Messaging)软件是我国目前上网用户使用率最高的软件之一,即时通信系统(Instant Messaging System)可使人们在网上识别在线用户并与之实时交流。目前

10、,即时通信和电话、传真一样,已经成为企业员工商务沟通中广泛使用的交流工具,但个人即时通信软件在提高了沟通效率的同时也带来了一些难以管理的问题,如安全性问题、用户伸缩性问题等。如何使即时通信真正为企业服务,发挥其长处,并对其有效管理,已经成为研究的一个新课题。为此论文研究开发了企业级即时通信系统,此系统具备个人即时通信系统的功能,是一款可管理、可控制的企业级即时通信系统。通过对国内外现有的即时通信软件详细地分析研究,提出了不同的即时通信模型,构建了适合于企业的即时通信系统,并通过实践验证了其具有很好的可行性与适用性。1.1 课题背景企事业的信息化发展,越来越需要不同系统协同工作,这就要求通过网络

11、进行即时通信。现在企事业单位采用电话和电子邮件通信手段,虽然起了很大的沟通作用,但还是无法实现即时通信。还有些单位采用市面上流行的即时通信软件,比如ICQ、腾讯QQ、EMS等软件,但这些软件一般针对个人通信,属于公共服务软件的一种,处于开放网络环境下,聊天对象与聊天内容不可控制,上班时使用EMS、QQ可能会降低工作效率。EMS、QQ必须登录Internet才能使用,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率和信息安全的隐患,所以并不太适合企(事)业内部的通信。还有的就是使用在本地局域网内即时传送消息和文件的小工具比如WinpopupX,它没

12、有服务器端,通过在线列表和操作系统的网上邻居获取在线用户或以网上邻居中的计算机为对象进行通信,没有安全性也不便于企业管理。在这种情况下,有必要自主开发企事业内部的即时通信软件1。1.2 研究现状目前,信息产业在我国发展很快,已取得了一些成就。国家研究院对中国信息化调查结果显示,“实时企业”这一概念被受访者认为是中国信息化最有应用前景的技术,认同率高达60%2,显示了即时通信软件在国内市场强劲的发展势头。即时通信软件在中国市场迅猛增长,各路厂商们正在纷纷推出自己的产品,能满足企业需求的还是比较少。而且目前的即时通信系统大多存在以下问题:1标准化目前即时通信的发展存在的最突出问题就是相关通信协议和

13、标准不统一,各个即时通信软件采用不同的语言和协议标准而无法相互通信3。由于各大即时通信厂家考虑自身的商业利益,到目前为止还没有完全制定统一标准的通信协议。但作为一种基于IP技术的通信基础软件,即时通信最终成为互通互联、开放式的在线通信工具肯定是大势所趋。即时通信已经成为语音及文本的在线实时通信的主要技术,它必将成为未来移动商务、在线协作及Internet应用的核心,同时也将继承IP技术的开放风格,扮演比电子邮件更为重要的角色。2安全性在即时通信系统的发展过程中,如何保障系统安全、为用户提供的可靠服务同样重要。一个即时通信系统可能会保存大量用户的个人信息,如何保证这些信息的安全将是一个长期课题4

14、。所以,建立统一、完善的安全体系也是未来发展的一个主要趋势。3伸缩性即时通信从支持几十个个人用户,到支持上百万的个人用户同时在线,这需要一个非常好的可伸缩性,如何建立一个好的可伸缩的体系结构支持高并发量的用户群体也是即时通信软件提供商要面临的问题。1.3 研究意义随着网络技术的发展,即时通信正在成为在线活动中不可或缺的业务。由于即时通信服务是一种公共服务,处于开放网络环境下,因而它为企业或机构用户提供协作支持的同时,也带来了来自公众网络的干扰,存在影响工作效率甚至信息安全的隐患。从个人即时通信向企业即时通信的演化,是目前即时通信领域的研究热点5,基于Socket的即时通信技术的出现则解决了这一

15、问题,其主要作用包括以下几个方面:1应用了目前最为流行的即时通信技术,使员工之间快速、便捷的交流。将大部分工作由手工处理转变为计算机处理,减少了人工错误和通信成本,提高了工作人员的工作效率。2建立了一个局部的管理的环境,通过建立安全对等组,实现一个可在局部范围内从事特定工作的区域。3建立了一个具有监督机制的环境,在安全对等组中,根据安全级别的高低,各个成员对等点的某些特定行为可以被监控并作相应记录。1.4 研究内容通过对市场上现有的国内外商业级即时通信系统的功能、架构详细的研究,将一些技术和想法融入到系统的实现过程中,论文研究的基于Socket的局域网即时通信系统主要实现点对点的私聊、多人群聊

16、、即时发送文件和历史记录的保存等功能。主要实现方法包括:1利用WinSock技术实现实时通信 整个系统通信基于TCP/IP的通信技术,通过调用WinSock的API实现相互之间的通信,而WinSock利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。2采用P2P与C/S混合模式来实现整个系统的通信架构确定用户之间通信模式为P2P模式便于直接通信高效传输信息,用户与服务器之间采用C/S模式用于通信的初始联接及保存用户信息和通信过程中的一些相关数据。3应用多线程 使网络服务器具有了多用户访问数据转发的功能,进而解决多用户间的并发通信问题。4通信协议的解析与约定 确定客户端与服务器端之间及

17、客户端与客户端之间的通信协议。 5数据库的管理与应用研究系统服务端使用的数据库访问技术。 6界面实现在界面实现的基础上完成具体的设计与实现工作。 1.5 论文结构论文共分六章。第一章为绪论,介绍了本文的研究背景,提出了实现即时通信的关键技术,并阐述了这些技术在国内外的研究现状以及开发此通信软件的必要性与可行性,进而提出了本文的研究方向,即设计一个企业即时通信系统。第二章对系统应用的相关技术进行描述,主要描述实现系统所需的通信原理、网络编程基础以及一些技术方面的基本概念与基本思想。第三章是系统总体设计,介绍了软件的整体(服务器和客户机)设计思路和概要设计,从总体上介绍软件的设计要求、工作流程以及

18、各个功能模块,对系统中的关键技术进行阐述。第四章对实现Socket通信的各个模块进行了研究与分析。第五章是系统的测试与结果分析,为了达到可靠性和可用性,对软件进行了功能测试。第六章也是全文的最后一章,对全文所开展的工作进行了总结。1.6 本章小结本章首先介绍了该课题的课题背景,初步认识该系统,了解了研究该系统的重要性。接着介绍了国内外研究现状以及研究意义,了解了该系统在当今社会上的定位以便于在前人研究基础上能有所创新。接着介绍了研究内容,明确了该系统所研究的方向和内容。最后对整个论文的组织结构进行了描述,使参阅者对论文有大致了解。2 Socket相关技术研究企业即时通信系统是在客户端服务器程序

19、设计基础上按照软件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现。本章主要研究主流的即时通信模型、网络通信技术、程序设计等。2.1 主流即时通信模型当代主流的即时通信模型主要有P2P模型与C/S模型,两种软件各有利弊,许多计算公司把P2P和C/S一样的看重,经常把两者结合在一起使用。2.1.1 P2P模型P2P(Peer to Peer,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等6。相对于C/S模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间

20、可以直接交换资源和服务而不必通过服务器。P2P的最大特点就是用户之间直接共享资源,使得PC不再是被动的客户端,而成为具有服务器和客户端双重特征的设备,当然P2P也有许多不足之处。首先P2P缺乏管理机制,管理者再也无法对其用户进行必要的管理,不像在C/S模式中只需在中心点进行管理,所以P2P模型的网络资源往往并不可靠6。其次P2P网络中数据的安全性难以保证,P2P模型如图2.1所示。图2.1 P2P模型图 2.1.2 C/S模型C/S(Client/Server,客户/服务器)模型,简称C/S架构。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和服务器上,降低系统通信开销。在这种结构

21、中,服务器处于一个中心地位。服务器是一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在服务器上。服务器始终处于工作状态,一般同时为多个客户提供服务,它被动地接受客户连接,根据客户的请求提供相应的服务。这就造成了服务器设计的复杂性。特别是像即时通信服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通信服务器是数据中心,需要同时应对众多客户的请求7。C/S通信主要特点是客户端之间的通信都要通过服务器的转发,会造成服务太集中,在C/S模型中,当网络增大时,服务器的压力就越大。当增加一个客户,服务器的性能就会弱化,甚至会而使服务器失效而导致整个网络的瘫痪等,其优点是便于集中

22、管理,像这种结构一般用在用户数量少的局域网内。C/S模型图如图2.2所示。图2.2 C/S模型图 2.2 即时通信主流的通信协议传输控制协议TCP和用户数据报UDP是TCP/IP协议族的两个主要的传输协议,这两个协议都使用IP作为网络层协议8。在网络通信传输机制中,TCP是属于“面向连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之间建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。这种方法需要的网络开销较大,但却提供一种可靠的传输层服务。UDP是属于“面向无连接,不可靠传输”的类型,该协议只负责接收和传送上层协议传递的消息,UDP本身不做任何检测

23、、修改与应答,上层协议需要自己处理这些事务。TCP、UDP最大的区别在于为应用协议提供不同的服务。2.2.1 UDP协议用户数据报协议UDP是建立在网际协议之上的,提供面向无连接、不可靠的数据报传输服务的传输协议9。UDP传输不像TCP传输一样需要预先建立一条连接,UDP把数据发送出去但不进行差错控制和流量控制,报文可能丢失、重复或者失序,而发送方却得不到通知的,数据也不会被重传。因此,UDP提供的是一种不可靠的应用数据传输服务。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据广播到网络上,任何欲接收者都可接收到数据。其优点在于:1使用UDP时,每个数据中都给出了完整的地址信息,发送

24、数据之前不需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延。2不使用拥塞控制,也不保证可靠传输,因此主机不需要维持具有许多参数的、复杂的连接状态表。3UDP不进行流量控制,没有序列与确认、没有超时重发等机制,因此它处理和传输数据的速度快。作为一种面向无连接的传输协议,基于UDP的应用程序在高可靠性、地延迟的网络中运动的很好,但是在通信子网的服务质量相对很低下的Internet上,它可能就无法运行了,因为数据报的丢失过于频繁。原因就在于UDP的不可靠性,而这些应用程序自身可能有没有提供可靠性保障。因此,基于UDP的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障

25、,例如遗失数据报重重传、失序的数据报重新组合等。2.2.2 TCP协议TCP是一个面向连接的、可靠的传输层协议,协议提供的服务包括面向连接、双向、有序并且无重复的数据流传送、有效的流量控制、全双工操作和多路复用。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比较高的数据传输9。因此即时通信系统的消息传输一般是建立在TCP协议基础之上的,客户与服务器之间都是通过TCP传输数据,服务器端口一般固定。由于TCP是面向连接的,但是在国内目前IP地址短缺,很多时候采用通过局域网连入Internet的网络状况,TCP的对等连接显然不能

26、满足所有的要求,而且目前由于黑客软件和病毒的泛滥,大部分上网的个人计算机都配置了防火墙在很大程度上阻止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的话采用通过服务器中转的方式。2.3 Socket技术随着Internet的迅猛发展,网络通信应用程序的开发成为一个研究热点。Windows环境下进行通信程序设计的最基本方法是采用Socket技术实现10。应用程序调用Socket的API(应用程序编程接口)实现相互之间的通信,又利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。Socket工作原理如图2.3所示:应用程序B应用程序A网络接口,例如,Windows Soc

27、ket网络服务协议接口,例如TCP/IP操作系统,例如Windows物理通信介质图2.3 Socket工作原理图Sockets也称为套接字,是一种网络编程接口,它是通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字,它们是流式套接字(Stream Sockets) 和数据报套接字(Datagram Sockets),这两种套接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不同的11。2.4 多线程技术操作系统是一个多任务的系统,支持多任务调度和处理,基于该功能所提供的多任务空间,程序员可以完全控制应用程序中每一个片段的运行,从而编写高效率的应

28、用程序。所谓多任务通常包括这样两大类:单进程和多线程。进程是指在系统中正在运行的一个应用程序,当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源13;而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,线程是系统分配处理器时资源的基本单元,或者进程之内独立执行的一个单元,对于操作系统而言,其调度单元是线程14。每个线程都有自己的专有寄存器,但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指,程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务,也就是多进

29、程。多线程的应用可以大大地提高CPU的利用率,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待。在即时通信系统开发中,主要用多线程来解决多用户同时与服务器进行通信以及客户端同时与其它多个客户端通信的问题。其基本设计思路是:服务器端启动后,进入侦听模式,如果有客户端连接的信号收到,服务器就自己新建一个Socket,然后新建一个线程用来和需要连接的客户端通信,同时,为了能够使windows窗口响应,还要发送事件给父窗口,接着自己继续侦听。新建的线程执行完毕,自动关闭连接,释放资源。这样,就实现了Socket的连接和多线程通信。2.5 JDBC技术本系统采用的是客户/服务器

30、三层结构,即客户端、服务器以及数据库。我们所用到的访问数据库的技术是JDBC。JDBC即活动的数据对象,是Microsoft开发的用于访问数据库的。其显著特点是快速、简单。JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JD

31、BC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的

32、接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。JDBC 扩展了Java的功能。Java和JDBC的结合使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序

33、的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序15。简单地说,JDBC可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。2.6 开发工具介绍在开发过程中主要用到Eclipse、MySQL数据库和Microsoft Office Visio 等工具,下面对这些开发工具做一下详细介绍。2.6.1 Eclipse简介Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础。目前由IBM牵头,围绕着Eclipse项目已经发展

34、成为了一个庞大的Eclipse联盟。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注16。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。Eclipse 最初主要用来Java语言开发,但是目前也可以作为其他计算机语言比如C+和Python的开发工具。虽然大多数用户很乐于将 Eclipse 当作IDE 来使用,但 Eclipse

35、 的目标不仅限于此。Eclipse 还包括插件开发环境,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 Eclipse主要特点:1增加了WindowBuilder ,一个流行的Eclipse开发GUI构建器,用户需要以安装插件的形式获得此功能。2Eclipse Market ,用户可以在线获取应用市场上种类繁多的Eclipse插件(包括免费的和收费的),相比原来的In

36、stall new software(现在仍然存在并可用),更加直接和便捷。3Xtext2.0使得它更容易创建领域特定语言。4EGit1.0提供Git版本控制系统的紧密集成。5更好地与Maven整合,包括启动Maven的构建和维护pom文件。6Jubula提供Java和HTML的自动化GUI测试功能。2.6.2 MySQL简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加

37、了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库17。MySQL数据库还有以下特点:1使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2支持Linux、Mac OS、Solaris、Windows等多种操作系统。 3为多种编程语言提供了API。这些编程语言包括C、C+、Java、PHP等。 4支持多线程,充分利用CPU资源。 5优化的SQL

38、查询算法,有效地提高查询速度。 6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 7提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 8提供用于管理、检查、优化数据库操作的管理工具。 9可以处理拥有上千万条记录的大型数据库。 10支持多种存储引擎。2.6.3 Visio简介Microsoft Office Visio 是微软公司出品的一款的软件,它有助于IT和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的

39、复杂文本和表格转换为一目了然的 Visio 图。该软件通过创建与数据相关的 Visio 图来显示数据,这些图易于刷新,并能够显著提高生产率。使用 Office Visio 中的各种图表了解、操作和共享企业内组织系统、资源和流程的有关信息18。虽然Visio是绘制流程图使用率最高的软件之一,但也有自己的一些不足。所以,结合实际情况选择合适的替代工具不失为一种明智的选择。2.7 本章小结本章对系统所应用的技术进行描述,首先对系统所使用的模型进行了描述,对两种模型进行了对比。接着对系统所使用的协议进行描述,阐述了各自的优缺点。接着对系统所用到的技术进行描述。以便于查找相关资料,掌握相关技术。3 对S

40、ocket通信需求分析根据前面所研究和分析的两种通信模型及关键技术,本章将这些技术同系统的需求联系起来,提出了系统的总体结构和工作流程。系统采用基于TCP/IP协议之上的C/S与P2P混合结构,即客户端与服务器之间的C/S通信结构和客户端之间的P2P通信结构的结合。系统的工作流程分为服务器端和客户端工作流程。3.1 即时通信系统总体需求即时通信系统主要用于实现政府机构、企业单位、社区生活的网络化,促使政府机构、企业单位、社区信息文件即时发布和快速传达。即时通信系统以“先进合理的应用理念”、“高效率的通信服务”,为用户提供了一套快捷的即时信息交流和办公的平台,以增强企事业单位内部的信息交流,解决

41、其内部信息公告、信息交流、文件传送等问题,降低沟通成本,提高单位的工作效率,为各企事业单位提供方便、快捷的即时通信服务19。3.2 系统功能描述本系统主要实现点对点的私聊,多人群聊,发送网络图片,即时发送文件,历史记录的保存等功能。同时保证数据即时快速的传递。表3.1所示。表3.1 系统功能表文本通信点对点会话通信,点对多点的消息和通知群发,信息存储等功能文件传输服务器共享文件查询,客户端上传文件,客户端下载文件等历史记录保存对用户的通话记录进行管理3.3 系统协议的选定系统的传输协议可以采用TCP与UDP两种协议。由于本设计中信息的交互在服务器与客户机、客户机与客户机之间进行,对服务器与客户

42、机的信息传输可靠性要求比较高,因此通过TCP来实现,而客户机与客户机之间要求信息传输效率高,通信协议就可采用UDP协议。在本系统的设计中,协议选择既有TCP协议也有UDP协议,系统中的C/S模式采用TCP协议,P2P模式采用UDP协议。由于文件传输部分需要保证文件的准确无误的传送,因此在客户机与客户机之间采用TCP协议来实现。3.4系统设计性能分析作为企(事)业单位内部员工简便的办公和沟通平台,企业即时通信系统需要保证数据通信的即时性以及通信过程和信息存储的安全性20,为企事业单位的使用者提供信息安全保障,同时减少系统资源的消耗,保证系统运行的低故障率。这些都是一个有实用价值的软件必须具备的性

43、能,具体如以下四点所述:1数据通信完整与可靠性:即时通信即用户间能实时发送和接收各种信息,包括文本通信和文件传输,确保数据的可到达性、确保数据解读的正确性,防止数据丢失或数据错位,从而保证消息传送的可靠性。2通信效率和公平性:这主要体现在服务器端。服务器需要同时处理所有用户发送的各类信息,并且完成数据库存储、读取、更新等操作;还需要采用适当方法提高服务器接收、解读、处理和发送数据的效率,在指定时间内完成需要的通信量,提高系统的即时通信性能,同时保证数据处理的公平性,保证各客户端的信息能够被及时响应和处理。3系统可控性:系统可控性是指系统运行期间完成数据存储、数据库备份、系统故障恢复等任务的性能

44、,包括用户注册管理、登录管理、客户端运行过程中监控等模块的设计。防止重要数据的丢失或被篡改,提高系统的运行可靠性,增强系统使用者的信心。3.5 本章小结本章主要对系统的总体设计及功能模块进行描述,首先对系统的总体需求进行分析,然后介绍各功能模块,最后对客户端,和服务器的工作流程进行了描述,并画出流程图,为开发系统做好准备。4实现Socket通信的方案和关键模块的设计4.1系统总体结构的描述即时通信系统是在某一个或若干个企事业单位内部使用的即时沟通和办公通信的工具和平台,具有即时通信、用户群特定等特点。本系统采用的是三层式的C/S构架来保证网络通信的机制:客户端、服务器端,服务数据库。客户端利用

45、TCP通信协议,并通过基于UDP通信协议的P2P技术与其他客户端进行交流;服务器处理客户端发送来的信息,并利用TCP通信协议将信息反馈回客户端以及保存用户的在线与离线状态;服务数据库主要负责用户注册信息保存,用户聊天记录的保存。其系统总体框架如图4.1所示。数据库服务器 JDBC C/S(TCP)C/S(TCP)客户端客户端 C/S(TCP)P2P(UDP)P2P(UDP)客户端P2P(UDP)图4.1 即时通信系统框架图基于Socket的局域网即时通信系统系统构架如图4.2、图4.3所示。点对点私聊多人群聊服务器用户文件传输历史记录保存图4.2 即时通信系统框架图(C/S)文字通信用户用户文

46、字传输图4.3即时通信系统框架图(P2P)4.1.1系统功能模块设计根据企业内部沟通的需要,以及从实际出发,系统功能模块图如图4.4所示:1服务器功能(1) 部门和用户管理功能模块在企业内部沟通中必须得了解企业内部的组织架构,这个模块就是系统管理员在按照企业实际组织结构,创建了各级部门并输入部门信息,然后根据部门再创建用户信息,用户不需要自由的添加,最终完成企业组织的搭建;(2) 用户登录处理模块此模块主要是进行登录验证,如果验证通过,服务器会将数据库中的用户状态改为在线,并通知其他在线用户;(3) 用户状态通知模块用户进行状态检测,好友在线,在好友列表中显示,如果好友不在列表中,即时通信功能模块客户端服务器用户下线模块历史记录查询模块文本通信模块文本通信模块用户登录与注册模块用户文件转模块发用户下线处理模块用户消息转发模块用户状态通知模块用户登录管理模块部门用户管理模块图4.4 系统功能模块图用户状态为离线;(4) 用户消息、文件转发用于发给离线用户的消息或文件;(5) 用户下线处理模块用户下线,断开连接,修改数据库中的用户状态并通知其他用户;2客户端功能客户端提供用户友好操作界面,负责发出请求和接收结果,主要功能有用户登录、文字通信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号