版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I摘 要随着网络通信技术和计算机技术的进一步发展,即时通信(Instant Messaging)正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应用中一个热点课题。即时通信软件的诞生,推动了企业工作效率的提高,降低了办公费用,给企业的管理带来了新的思路和方法,并引起了人们对该应用领域的关注。本文在现有的网络通信技术、数据库技术和信息安全技术的基础上设计并实现了新型的企业即时通信系统(EIM,Enterprise Instant Messaging)。该系统为用户提供了一个集文字通信、文件传输于一体的即时通信平台,基本满足了企业用户的要求。在对即时通信系统的服务器端和客户端的主要组成模块
2、详细剖析后,论文研究了各个模块的详细设计和实现方式,分别研究了每个模块的主要功能,并给出了模块运行效果图。系统实现后,对系统进行了功能测试,并分析测试数据。实验数据表明,该系统具有易于实现、可靠性高、易于扩展、传输效率高等特点,达到了预定的设计目标。关键词:关键词:即时通信,Socket,通信模型, 文件传输理工大学学士学位论文IIAbstractWith the network communication technology and the further development of computer technology, instant messaging (Instant Mess
3、aging) is becoming 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
4、 methods, and aroused 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)
5、. The system provides 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 det
6、ailed design of each 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
7、 has easy to implement, reliable, scalable, and high transmission efficiency, achieved its design goals. Keywords: Instant Messaging, Socket, Communication Model, File Transfer理工大学学士学位论文III目 录1 绪论.11.1 课题背景.11.2 研究现状.11.3 研究意义.21.4 研究内容.31.5 论文结构.31.6 本章小结.42 SOCKET 相关技术研究.52.1 主流即时通信模型.52.1.1 P2P 模
8、型.52.1.2 C/S 模型.62.2 即时通信主流的通信协议.72.2.1 UDP 协议.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.
9、1 系统总体结构的描述.164.1.1 系统功能模块设计.174.2 服务器端工作流程.194.2.1 客户端工作流程.214.3 总体实现方案和类的设计.224.4 关键模块详细设计与实现.234.4.1 利用 Socket 进行 TCP 连接.234.4.2 面向连接的 Socket 机制的模块设计.274.5 文件传输模块.28理工大学学士学位论文IV4.6 本章小结.295 对程序进行调试与测试,并对结果进行分析.305.1 SOCKET通信的应用 .305.2 聊天服务器端.305. 3 聊天客户端.325.4 聊天系统的运行界面.33结论.34具体工作如下.34参考文献.35致谢.
10、37附录 A 英语原文.38附录 B 汉语翻译.53理工大学学士学位论文11 绪 论即时通信(Instant Messaging)软件是我国目前上网用户使用率最高的软件之一,即时通信系统(Instant Messaging System)可使人们在网上识别在线用户并与之实时交流。目前,即时通信和电话、传真一样,已经成为企业员工商务沟通中广泛使用的交流工具,但个人即时通信软件在提高了沟通效率的同时也带来了一些难以管理的问题,如安全性问题、用户伸缩性问题等。如何使即时通信真正为企业服务,发挥其长处,并对其有效管理,已经成为研究的一个新课题。为此论文研究开发了企业级即时通信系统,此系统具备个人即时通
11、信系统的功能,是一款可管理、可控制的企业级即时通信系统。通过对国内外现有的即时通信软件详细地分析研究,提出了不同的即时通信模型,构建了适合于企业的即时通信系统,并通过实践验证了其具有很好的可行性与适用性。1.1 课题背景企事业的信息化发展,越来越需要不同系统协同工作,这就要求通过网络进行即时通信。现在企事业单位采用电话和电子邮件通信手段,虽然起了很大的沟通作用,但还是无法实现即时通信。还有些单位采用市面上流行的即时通信软件,比如ICQ、腾讯QQ、EMS等软件,但这些软件一般针对个人通信,属于公共服务软件的一种,处于开放网络环境下,聊天对象与聊天内容不可控制,上班时使用EMS、QQ可能会降低工作
12、效率。EMS、QQ必须登录Internet才能使用,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率和信息安全的隐患,所以并不太适合企(事)业内部的通信。还有的就是使用在本地局域网内即时传送消息和文件的小工具比如WinpopupX,它没有服务器端,通过在线列表和操作系统的网上邻居获取在线用户或以网上邻居中的计算机为对象进行通信,没有安全性也不便于企业管理。在这种情况下,有必要自主开发企事业内部的即时通信软件1。理工大学学士学位论文21.2 研究现状目前,信息产业在我国发展很快,已取得了一些成就。国家研究院对中国信息化调查结果显示,“实时企业”这一
13、概念被受访者认为是中国信息化最有应用前景的技术,认同率高达60%2,显示了即时通信软件在国内市场强劲的发展势头。即时通信软件在中国市场迅猛增长,各路厂商们正在纷纷推出自己的产品,能满足企业需求的还是比较少。而且目前的即时通信系统大多存在以下问题:1标准化目前即时通信的发展存在的最突出问题就是相关通信协议和标准不统一,各个即时通信软件采用不同的语言和协议标准而无法相互通信3。由于各大即时通信厂家考虑自身的商业利益,到目前为止还没有完全制定统一标准的通信协议。但作为一种基于IP技术的通信基础软件,即时通信最终成为互通互联、开放式的在线通信工具肯定是大势所趋。即时通信已经成为语音及文本的在线实时通信
14、的主要技术,它必将成为未来移动商务、在线协作及Internet应用的核心,同时也将继承IP技术的开放风格,扮演比电子邮件更为重要的角色。2安全性在即时通信系统的发展过程中,如何保障系统安全、为用户提供的可靠服务同样重要。一个即时通信系统可能会保存大量用户的个人信息,如何保证这些信息的安全将是一个长期课题4。所以,建立统一、完善的安全体系也是未来发展的一个主要趋势。3伸缩性即时通信从支持几十个个人用户,到支持上百万的个人用户同时在线,这需要一个非常好的可伸缩性,如何建立一个好的可伸缩的体系结构支持高并发量的用户群体也是即时通信软件提供商要面临的问题。1.3 研究意义随着网络技术的发展,即时通信正
15、在成为在线活动中不可或缺的业务。由于即时通信服务是一种公共服务,处于开放网络环境下,因而它为企业或机构用户提供协作支持的同时,也带来了来自公众网络的干扰,存在影响工作效率甚至信息安全的隐患。理工大学学士学位论文3从个人即时通信向企业即时通信的演化,是目前即时通信领域的研究热点5,基于Socket的即时通信技术的出现则解决了这一问题,其主要作用包括以下几个方面:1应用了目前最为流行的即时通信技术,使员工之间快速、便捷的交流。将大部分工作由手工处理转变为计算机处理,减少了人工错误和通信成本,提高了工作人员的工作效率。2建立了一个局部的管理的环境,通过建立安全对等组,实现一个可在局部范围内从事特定工
16、作的区域。3建立了一个具有监督机制的环境,在安全对等组中,根据安全级别的高低,各个成员对等点的某些特定行为可以被监控并作相应记录。1.4 研究内容通过对市场上现有的国内外商业级即时通信系统的功能、架构详细的研究,将一些技术和想法融入到系统的实现过程中,论文研究的基于 Socket 的局域网即时通信系统主要实现点对点的私聊、多人群聊、即时发送文件和历史记录的保存等功能。主要实现方法包括:1利用 WinSock 技术实现实时通信 整个系统通信基于 TCP/IP 的通信技术,通过调用 WinSock 的 API 实现相互之间的通信,而 WinSock 利用下层的网络通信协议功能和操作系统调用实现实际
17、的通信工作。2采用 P2P 与 C/S 混合模式来实现整个系统的通信架构确定用户之间通信模式为 P2P 模式便于直接通信高效传输信息,用户与服务器之间采用 C/S 模式用于通信的初始联接及保存用户信息和通信过程中的一些相关数据。3应用多线程 使网络服务器具有了多用户访问数据转发的功能,进而解决多用户间的并发通信问题。4通信协议的解析与约定 确定客户端与服务器端之间及客户端与客户端之间的通信协议。 5数据库的管理与应用研究系统服务端使用的数据库访问技术。 理工大学学士学位论文46界面实现在界面实现的基础上完成具体的设计与实现工作。 1.5 论文结构论文共分六章。第一章为绪论,介绍了本文的研究背景
18、,提出了实现即时通信的关键技术,并阐述了这些技术在国内外的研究现状以及开发此通信软件的必要性与可行性,进而提出了本文的研究方向,即设计一个企业即时通信系统。第二章对系统应用的相关技术进行描述,主要描述实现系统所需的通信原理、网络编程基础以及一些技术方面的基本概念与基本思想。第三章是系统总体设计,介绍了软件的整体(服务器和客户机)设计思路和概要设计,从总体上介绍软件的设计要求、工作流程以及各个功能模块,对系统中的关键技术进行阐述。第四章对实现Socket通信的各个模块进行了研究与分析。第五章是系统的测试与结果分析,为了达到可靠性和可用性,对软件进行了功能测试。第六章也是全文的最后一章,对全文所开
19、展的工作进行了总结。1.6 本章小结本章首先介绍了该课题的课题背景,初步认识该系统,了解了研究该系统的重要性。接着介绍了国内外研究现状以及研究意义,了解了该系统在当今社会上的定位以便于在前人研究基础上能有所创新。接着介绍了研究内容,明确了该系统所研究的方向和内容。最后对整个论文的组织结构进行了描述,使参阅者对论文有大致了解。理工大学学士学位论文52 Socket 相关技术研究企业即时通信系统是在客户端服务器程序设计基础上按照软件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现。本章主要研究主流的即时通信模型、网络通信技术、程序设计等。2.1 主流即时通信模型当代主流的即时通信
20、模型主要有P2P模型与C/S模型,两种软件各有利弊,许多计算公司把P2P和C/S一样的看重,经常把两者结合在一起使用。2.1.1 P2P 模型P2P(Peer to Peer,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等6。相对于C/S模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。P2P的最大特点就是用户之间直接共享资源,使得PC不再是被动的客户端,而成为具有服务器和客户端双重特征的设备,当然P2P也有许多不足之处。首先P
21、2P缺乏管理机制,管理者再也无法对其用户进行必要的管理,不像在C/S模式中只需在中心点进行管理,所以P2P模型的网络资源往往并不可靠6。其次P2P网络中数据的安全性难以保证,P2P模型如图2.1所示。理工大学学士学位论文6图 2.1 P2P 模型图 2.1.2 C/S 模型C/S(Client/Server,客户/服务器)模型,简称C/S架构。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和服务器上,降低系统通信开销。在这种结构中,服务器处于一个中心地位。服务器是一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在服务器上。服务器始终处于工作状态,一般同时为多个客户提供
22、服务,它被动地接受客户连接,根据客户的请求提供相应的服务。这就造成了服务器设计的复杂性。特别是像即时通信服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通信服务器是数据中心,需要同时应对众多客户的请求7。C/S通信主要特点是客户端之间的通信都要通过服务器的转发,会造成服务太集中,在C/S模型中,当网络增大时,服务器的压力就越大。当增加一个客户,服务器的性能就会弱化,甚至会而使服务器失效而导致整个网络的瘫痪等,其优点是便于集中管理,像这种结构一般用在用户数量少的局域网内。C/S模型图如图2.2所示。理工大学学士学位论文7图 2.2 C/S 模型图 2.2 即时通信主流的通信协议传
23、输控制协议TCP和用户数据报UDP是TCP/IP协议族的两个主要的传输协议,这两个协议都使用IP作为网络层协议8。在网络通信传输机制中,TCP是属于“面向连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之间建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。这种方法需要的网络开销较大,但却提供一种可靠的传输层服务。UDP是属于“面向无连接,不可靠传输”的类型,该协议只负责接收和传送上层协议传递的消息,UDP本身不做任何检测、修改与应答,上层协议需要自己处理这些事务。TCP、UDP最大的区别在于为应用协议提供不同的服务。2.2.1 UDP 协议用户数据
24、报协议UDP是建立在网际协议之上的,提供面向无连接、不可靠的数据报传输服务的传输协议9。UDP传输不像TCP传输一样需要预先建立一条连接,UDP把数据发送出去但不进行差错控制和流量控制,报文可能丢失、重复或者失序,而发送方却得不到通知的,数据也不会被重传。因此,UDP提供的是一种不可靠的应用数据传输服务。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据广播到理工大学学士学位论文8网络上,任何欲接收者都可接收到数据。其优点在于:1使用 UDP 时,每个数据中都给出了完整的地址信息,发送数据之前不需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延。2不使用拥塞控制,也不保证
25、可靠传输,因此主机不需要维持具有许多参数的、复杂的连接状态表。3UDP不进行流量控制,没有序列与确认、没有超时重发等机制,因此它处理和传输数据的速度快。作为一种面向无连接的传输协议,基于UDP的应用程序在高可靠性、地延迟的网络中运动的很好,但是在通信子网的服务质量相对很低下的Internet上,它可能就无法运行了,因为数据报的丢失过于频繁。原因就在于UDP的不可靠性,而这些应用程序自身可能有没有提供可靠性保障。因此,基于UDP的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障,例如遗失数据报重重传、失序的数据报重新组合等。2.2.2 TCP 协议TCP是一个面向连接的、可靠的
26、传输层协议,协议提供的服务包括面向连接、双向、有序并且无重复的数据流传送、有效的流量控制、全双工操作和多路复用。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比较高的数据传输9。因此即时通信系统的消息传输一般是建立在TCP协议基础之上的,客户与服务器之间都是通过TCP传输数据,服务器端口一般固定。由于TCP是面向连接的,但是在国内目前IP地址短缺,很多时候采用通过局域网连入Internet的网络状况,TCP的对等连接显然不能满足所有的要求,而且目前由于黑客软件和病毒的泛滥,大部分上网的个人计算机都配置了防火墙在很大程度上阻
27、止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的话采用通过服务器中转的方式。2.3 Socket 技术随着 Internet 的迅猛发展,网络通信应用程序的开发成为一个研究热点。Windows环境下进行通信程序设计的最基本方法是采用 Socket 技术实现10。理工大学学士学位论文9应用程序调用Socket的API(应用程序编程接口)实现相互之间的通信,又利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。Socket工作原理如图2.3所示:图 2.3 Socket 工作原理图Sockets也称为套接字,是一种网络编程接口,它是通信端点的一种抽象,提供了一种发送和接
28、收数据的机制。用户目前可以使用两种类型的套接字,它们是流式套接字(Stream Sockets) 和数据报套接字(Datagram Sockets),这两种套接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不同的11。2.4 多线程技术操作系统是一个多任务的系统,支持多任务调度和处理,基于该功能所提供的多任务空间,程序员可以完全控制应用程序中每一个片段的运行,从而编写高效率的应用程序。所谓多任务通常包括这样两大类:单进程和多线程。进程是指在系统中正在运行的一个应用程序,当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源13;而一个进程又是
29、由多个线程所组成的,线程是程序中的一个执行流,线程是系统分配处理器时资源的基本单元,或者进程之内独立执行的一个单元,对于操作系统而言,其调度单元是线程14。每个线程都有自己应用程序 A应用程序 B网络接口,例如,Windows Socket网络服务协议接口,例如 TCP/IP操作系统,例如 Windows物理通信介质理工大学学士学位论文10的专有寄存器,但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指,程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务,也就是多进程。多线程的应用可以大大地提高C
30、PU的利用率,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待。在即时通信系统开发中,主要用多线程来解决多用户同时与服务器进行通信以及客户端同时与其它多个客户端通信的问题。其基本设计思路是:服务器端启动后,进入侦听模式,如果有客户端连接的信号收到,服务器就自己新建一个 Socket,然后新建一个线程用来和需要连接的客户端通信,同时,为了能够使 windows 窗口响应,还要发送事件给父窗口,接着自己继续侦听。新建的线程执行完毕,自动关闭连接,释放资源。这样,就实现了 Socket 的连接和多线程通信。2.5 JDBC 技术本系统采用的是客户/服务器三层结构,即客户端、
31、服务器以及数据库。我们所用到的访问数据库的技术是JDBC。JDBC即活动的数据对象,是Microsoft开发的用于访问数据库的。其显著特点是快速、简单。JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 为数据库开发人员提供了一个标准的 API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。有了 JDBC,向各种关系数据发送 SQL 语句就是一件很容易的事。换言之,有了JD
32、BC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,或为访问 Informix 数据库又编写另一个程序等等,程序员只需用 JDBC API 写一个程序就够了,它可向相应数据库发送 SQL 调用。同时,将 Java 语言和JDBC 结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是 Java 语言“编写一次,处处运行”的优势。 Java 数据库连接体系结构是用于 Java 应用程序连接数据库的标准方法。JDBC 对Java 程序员而言是 API,对实现与数据库连接的服务提供商而言是接口模型
33、。作为API,JDBC 为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与理工大学学士学位论文11数据库的连接提供了标准方法。JDBC 使用已有的 SQL 标准并支持与其它数据库连接标准。JDBC 实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。JDBC 扩展了 Java 的功能。Java 和 JDBC 的结合使信息传播变得容易和经济。企业可继续使
34、用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序15。简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。2.6 开发工具介绍在开发过程中主要用到 Eclipse、MySQL 数据库和 Microsoft Office Visio 等工具,下面对这些开发工具做一下详细介绍。2.6.1 Eclipse 简介Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起
35、始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代码基础。目前由 IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟。Eclipse 是一个开发源码项目,它其实是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注16。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。Eclipse 最初主要用来 Ja
36、va 语言开发,但是目前也可以作为其他计算机语言比如 C+和 Python 的开发工具。虽然大多数用户很乐于将 Eclipse 当作 IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建理工大学学士学位论文12与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 Eclipse 主要特点:1增加了 WindowBuilder ,一个流行
37、的 Eclipse 开发 GUI 构建器,用户需要以安装插件的形式获得此功能。2Eclipse Market ,用户可以在线获取应用市场上种类繁多的 Eclipse 插件(包括免费的和收费的),相比原来的 Install new software(现在仍然存在并可用),更加直接和便捷。3Xtext2.0 使得它更容易创建领域特定语言。4EGit1.0 提供 Git 版本控制系统的紧密集成。5更好地与 Maven 整合,包括启动 Maven 的构建和维护 pom 文件。6Jubula 提供 Java 和 HTML 的自动化 GUI 测试功能。2.6.2 MySQL 简介MySQL 是一个小型关系
38、型数据库管理系统,开发者为瑞典 MySQL AB 公司。在2008 年 1 月 16 号被 Sun 公司收购。而 2009 年,SUN 又被 Oracle 收购。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL 的 SQL“结构化查询语言”。SQL 是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库17。MySQL 数
39、据库还有以下特点:1使用 C 和 C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2支持 Linux、Mac OS、Solaris、Windows 等多种操作系统。 3为多种编程语言提供了 API。这些编程语言包括 C、C+、Java、PHP 等。 4支持多线程,充分利用 CPU 资源。 5优化的 SQL 查询算法,有效地提高查询速度。 6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB 理工大学学士学位论文132312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。 7提
40、供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。 8提供用于管理、检查、优化数据库操作的管理工具。 9可以处理拥有上千万条记录的大型数据库。 10支持多种存储引擎。2.6.3 Visio 简介Microsoft Office Visio 是微软公司出品的一款的软件,它有助于 IT 和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的复杂文本和表格转换为一目了然的 Visio 图。该软件通过创建与数据相关的 Visio 图来显示数据,这些图易于刷新,并能够显著提高生产率。使用 Office Visio 中的各种图表了解、操作和共享企业内组织系统、资源和流程的有关信息
41、18。虽然 Visio 是绘制流程图使用率最高的软件之一,但也有自己的一些不足。所以,结合实际情况选择合适的替代工具不失为一种明智的选择。 。2.7 本章小结本章对系统所应用的技术进行描述,首先对系统所使用的模型进行了描述,对两种模型进行了对比。接着对系统所使用的协议进行描述,阐述了各自的优缺点。接着对系统所用到的技术进行描述。以便于查找相关资料,掌握相关技术。理工大学学士学位论文143 对 Socket 通信需求分析根据前面所研究和分析的两种通信模型及关键技术,本章将这些技术同系统的需求联系起来,提出了系统的总体结构和工作流程。系统采用基于 TCP/IP 协议之上的C/S 与 P2P 混合结
42、构,即客户端与服务器之间的 C/S 通信结构和客户端之间的 P2P 通信结构的结合。系统的工作流程分为服务器端和客户端工作流程。3.1 即时通信系统总体需求即时通信系统主要用于实现政府机构、企业单位、社区生活的网络化,促使政府机构、企业单位、社区信息文件即时发布和快速传达。即时通信系统以“先进合理的应用理念”、“高效率的通信服务”,为用户提供了一套快捷的即时信息交流和办公的平台,以增强企事业单位内部的信息交流,解决其内部信息公告、信息交流、文件传送等问题,降低沟通成本,提高单位的工作效率,为各企事业单位提供方便、快捷的即时通信服务19。3.2 系统功能描述本系统主要实现点对点的私聊,多人群聊,
43、发送网络图片,即时发送文件,历史记录的保存等功能。同时保证数据即时快速的传递。表 3.1 所示。表 3.1 系统功能表文本通信点对点会话通信,点对多点的消息和通知群发,信息存储等功能文件传输服务器共享文件查询,客户端上传文件,客户端下载文件等历史记录保存对用户的通话记录进行管理3.3 系统协议的选定系统的传输协议可以采用TCP与UDP两种协议。由于本设计中信息的交互在服务器与客户机、客户机与客户机之间进行,对服务器与客户机的信息传输可靠性要求比较高,因此通过TCP来实现,而客户机与客户机之间要求信息传输效率高,通信协议理工大学学士学位论文15就可采用UDP协议。在本系统的设计中,协议选择既有T
44、CP协议也有UDP协议,系统中的C/S模式采用TCP协议,P2P模式采用UDP协议。由于文件传输部分需要保证文件的准确无误的传送,因此在客户机与客户机之间采用TCP协议来实现。3.4 系统设计性能分析作为企(事)业单位内部员工简便的办公和沟通平台,企业即时通信系统需要保证数据通信的即时性以及通信过程和信息存储的安全性20,为企事业单位的使用者提供信息安全保障,同时减少系统资源的消耗,保证系统运行的低故障率。这些都是一个有实用价值的软件必须具备的性能,具体如以下四点所述:1数据通信完整与可靠性:即时通信即用户间能实时发送和接收各种信息,包括文本通信和文件传输,确保数据的可到达性、确保数据解读的正
45、确性,防止数据丢失或数据错位,从而保证消息传送的可靠性。2通信效率和公平性:这主要体现在服务器端。服务器需要同时处理所有用户发送的各类信息,并且完成数据库存储、读取、更新等操作;还需要采用适当方法提高服务器接收、解读、处理和发送数据的效率,在指定时间内完成需要的通信量,提高系统的即时通信性能,同时保证数据处理的公平性,保证各客户端的信息能够被及时响应和处理。3系统可控性:系统可控性是指系统运行期间完成数据存储、数据库备份、系统故障恢复等任务的性能,包括用户注册管理、登录管理、客户端运行过程中监控等模块的设计。防止重要数据的丢失或被篡改,提高系统的运行可靠性,增强系统使用者的信心。3.5 本章小
46、结本章主要对系统的总体设计及功能模块进行描述,首先对系统的总体需求进行分析,然后介绍各功能模块,最后对客户端,和服务器的工作流程进行了描述,并画出流程图,为开发系统做好准备。理工大学学士学位论文164 实现 Socket 通信的方案和关键模块的设计4.1 系统总体结构的描述即时通信系统是在某一个或若干个企事业单位内部使用的即时沟通和办公通信的工具和平台,具有即时通信、用户群特定等特点。本系统采用的是三层式的C/S构架来保证网络通信的机制:客户端、服务器端,服务数据库。客户端利用TCP通信协议,并通过基于UDP通信协议的P2P技术与其他客户端进行交流;服务器处理客户端发送来的信息,并利用TCP通
47、信协议将信息反馈回客户端以及保存用户的在线与离线状态;服务数据库主要负责用户注册信息保存,用户聊天记录的保存。其系统总体框架如图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 所示。客户端服务器客户端客户端数据库理工大学学士学位论文17图 4.2 即时通信系统框架图(C/S)图 4.3 即时通信系统框架图(P2P)4.1.1 系统功能模块设计根据企业内部沟通的需要,以及从实际出发,系统功能模块图如图4.4所示:1服务器
48、功能(1) 部门和用户管理功能模块在企业内部沟通中必须得了解企业内部的组织架构,这个模块就是系统管理员在按照企业实际组织结构,创建了各级部门并输入部门信息,然后根据部门再创建用户信息,用户不需要自由的添加,最终完成企业组织的搭建;(2) 用户登录处理模块此模块主要是进行登录验证,如果验证通过,服务器会将数据库中的用户状态改历史记录保存文件传输点对点私聊多人群聊用户服务器文字通信文字传输用户用户理工大学学士学位论文18为在线,并通知其他在线用户;(3) 用户状态通知模块用户进行状态检测,好友在线,在好友列表中显示,如果好友不在列表中,用户状态为离线;(4) 用户消息、文件转发用于发给离线用户的消
49、息或文件;(5) 用户下线处理模块用户下线,断开连接,修改数据库中的用户状态并通知其他用户;2客户端功能客户端提供用户友好操作界面,负责发出请求和接收结果,主要功能有用户登录、文字通信、文件传输、历史记录保存、好友管理等,通过底层协议传输数据,并在协议解析模块解析信息。图 4.4 系统功能模块图即时通信功能模块服务器客户端部门用户管理模块用户登录管理模块用户状态通知模块用户消息转发模块用户下线处理模块用户文件转模块发用户登录与注册模块文本通信模块文本通信模块历史记录查询模块用户下线模块理工大学学士学位论文194.2 服务器端工作流程服务器运行后,开启服务,则服务器开始侦听用户请求,如有信息发送
50、过来,服务器首先发送回确认信息,然后,建立一个线程,处理接收到的数据。在线程里,按照接收到数据的类别(用特殊字符来辨别),进行相应的处理,如有需要,会向用户发送处理的结果,处理结束后,线程就结束了。这样,可以实时接收每个用户的请求,不会因为处理一个用户的请求,而忽略了其它用户。服务器端即时通信工作流程如图4.5所示。理工大学学士学位论文20NN YYYNYNY NN Y图 4.5 服务器端工作流程启动服务监听客户端连接用户连接请求用户登录建立合法连接,显示用户上线通知响应用户发出的请求文本通信文本传输用户退出用户下线通知退出开始登录成功返回对方上线保存到本地连接转发给对方建立连接完成文件传输保
51、存文件理工大学学士学位论文214.2.1 客户端工作流程客户端即时通信流程如图 4.6 所示。NYNY图 4.6 客户端通信流程图客户端的即时通信工作流程可作如下描述:1启动客户端,首先进行注册,注册成功开始显示登录界面验证成功建立连接显示主界面文件传输向服务器发送请求服务器接受请求并处理实现用户请求客户端退出结束结束添加删除好友文件传输理工大学学士学位论文222显示登录主界面,输入账号和密码,用户开始登录;3客户端开始在线侦听,用户可以在主界面进行某种操作;4用户可以发送各种聊天信息,文件传输请求等应用请求;5请求发出后自动等待服务器返回的数据,解读该数据并判定请求的结果;6执行结果,并保存
52、处理信息至本地链接(若干文件组成);7在客户端退出前循环执行用户的各种操作,并发送各种请求;8客户端退出则断开该连接。4.3 总体实现方案和类的设计1系统总体实现方案系统将采用C/S方式设计,服务器主要为客户端服务,通过响应客户端的请求访问数据库,给用户提供相应的信息,服务器数据库使用MySql做数据库管理系统。信息交流的绝大部分功能都在系统的客户端完成。客户端主要功能都是基于P2P技术的,因此客户端功能的实现主要就是如何建立P2P的连接,建立连接后就能轻松完成包括发送消息,文本交谈,发送文件等功能。2系统通信核心类类用于描述一组具有相同属性、操作、关系和语义的对象20。其中主要包括消息类和类
53、图,基nnectio类ConThread,另外还有其它的10几个类,分别用于各种类型的操作。(1) ConnectionThread该类是客户端发送给服务器消息,接收服务器消息的类,也是客户端众多线程中的主线程(2) RegisterInfo和RegisterFrameRegisterFrame类用来生成注册页面,完成注册界面相应的布局,RegisterInfo类用来生成填写注册信息界面,验证注册信息格式是否正确,如果不正确给出相应的提示信息 (3) ChatF和ChatF1ChatF1类主要实现客户端与客户端点对点的私聊,实现文件传输,发送消息主要用函数sendMessage(),文件传输主
54、要在actionPerformed()中实现,ChatF类主要实现多人理工大学学士学位论文23群聊发送消息也是用函数sendMessage()来实现(4) History该类主要用于历史记录读取,关闭聊天窗口,如果历史记录为空给出提示信息(5) ListF主要用于生成在线好友列表(6) FindFriendFrame该类主要用于根据qq号查找好友,然后添加好友,实现通信(7) Dao该类用于实现服务器与数据库的连接,处理数据(8) Server该类是服务器实现通信,与客户端进行交互的类,用于接收客户端的各种操作请求,处理相应的请求(每个请求由特殊字符来区分),响应请求,实现客户端与客户端,客户
55、端与服务器实现通信。4.4 关键模块详细设计与实现主要对各个功能模块实现做具体的描述,加深对系统的认识。4.4.1 利用 Socket 进行 TCP 连接Socket进行TCP网络连接,是一种客户/服务器的连接类型,利用Socket的API进行连接的程序时序图如图4.7所示。理工大学学士学位论文24图 4.7 Socket 的 TCP 连接时序图 1流式套接字流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的面向连接的数据传输方式。不管是对单个的数据报,还是对数据包,流式套接字都提供了一种流式数据传输,是TCP传输协议的接口12。当用户想发送大批量数据或想让发送的数据按顺序无
56、重复地到达目的地时,使用流式套接字是最方便的。此外,在数据传输时,如果连接断开,应用程序会被通知的。由于流式套接字用的是面向连接的协议,所以必须首先建立连接然后才能从数据流中读出数据,而不是从一个数据报或一个记录读出数据。流式套接字的服务进程和客户进程在通信前必须创建各自的套接字并建立连接,然后才能对相应的套接字进行“读”、“写”操作,实现数据传输。使用流式套接字时,用户在发送、接收数据之前同样必须首先建立连接,然后才能传输数据,流式套接字编程模型的工作流程如图4.7所示。TCP 服务端Socket()Bind()Listen()等待客户请求Accept()CloseSocket()Recv(
57、)Send()Connect()Send()Recv()CloseSocket()Socket()TCP 客户端理工大学学士学位论文25首先,服务器要创建一个用于监听的套接字,把它绑定到众所周知的服务器端口上,然后调用 listen 函数使它处于监听状态;客户机在创建套接字后,即可调用connect 函数,请求与服务器套接字连接;服务器套接字在收到客户机的连接请求后,调用 accept 函数来接收客户机的连接请求,并创建另一个用于通信的套接字。用此套接字和客户机上的套接字形成网络通信管道的两个端点,然后就可以在服务器和客户机之间进行数据传输了。服务器上的监听套接字仍处于监听的状态,随时准备接受
58、其他客户机的连接请求。传输结束后,客户机调用 closeSocket 函数关闭套接字,服务器也调用该函数关闭用于监听和通信的套接字,释放资源。2数据报套接字数据报套接字节提供了不可靠的、无连接的数据包通信方式。数据通过相互独立的报文进行传输,是无序的,并且不保证报文的可靠、无差错。实际使用中,数据报套接字一般用于一些轻负载的局域网上的计算机之间的通信,同一个分组数据报可能不止一次地被发送,一般要等到接收方发回确认收到的消息才停止发送。对于在TCP/IP上实现的Socket,数据报套接字节使用UDP协议9。无连接的服务器一般都是面向事务处理的,大多数的数据报套接字应用程序将使用一个事件序列来完成
59、客户应用程序和服务器应用程序之间的通信,其编程过程相对流式套接字要简单些如图4.8所示。对于接收端(一般为服务器端),先用Socket函数建立套接字,在通过bind函数把这个套接字和准备接收数据的IP地址信息绑定在一起,这和前面流套接字一样,但不同的是它不必调用listen和accept,只需要等待接收数据。并且由于它是无连接的,因此可以接收网络上任何一台机器所发的数据包。图4.8、图4.9别为流式套接字和数据报套接字应用程序时序图。理工大学学士学位论文26服务请求服务响应图 4.8 流式套接字图 建立连接请求数据应答数据 图 4.9 数据报套接字图 Socket()Bind()等待客户请求R
60、endform()()Close()Send()Send()Rendform()Close()Bind()Socket()处理请求Socket()Bind()Listen()等待客户请求Accept()Close()Rend()Write()Connect()Write()Read()Close()Socket()理工大学学士学位论文274.4.2 面向连接的 Socket 机制的模块设计图 4.10 是一个典型的面向连接的 Socket 通信机制的示意图。它首先由服务器建立Socket 并将该 Socket 联编到某个端口上,并进入监听状态,同时监听是否有与自己端口相对应的连接请求。连接是由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能农业的土地利用规划
- 四川电影电视学院《动画史与经典作品赏析》2021-2022学年第一学期期末试卷
- 石河子大学《药用植物学》2021-2022学年第一学期期末试卷
- 石河子大学《食品技术原理》2022-2023学年第一学期期末试卷
- 石河子大学《结构力学二》2021-2022学年第一学期期末试卷
- 石河子大学《家庭社会工作》2023-2024学年第一学期期末试卷
- 石河子大学《房屋建筑学》2023-2024学年第一学期期末试卷
- 沈阳理工大学《自动控制原理》2023-2024学年期末试卷
- 沈阳理工大学《商业摄影》2023-2024学年第一学期期末试卷
- 沈阳理工大学《建筑实务》2021-2022学年第一学期期末试卷
- 2024年二季度灵活就业调查报告
- 中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?参考答案三
- 液压站操作说明书
- 2021至2024年广东新高考化学真题考点分布试题及答案
- 7《小书包》教学设计-2024-2025学年统编版语文一年级上册
- 广安市岳池县2024年上半年“小平故里英才”引进急需紧缺专业人才历年(高频重点复习提升训练)共500题附带答案详解
- 婚内财产约定协议书范本2024年
- 走进摄影智慧树知到答案2024年海南软件职业技术学院
- 2024年人教版五年级上册数学第五单元课后练习题(含答案和概念)
- 幼儿园大班社会主题活动《小小一粒米 我们要珍惜》课件
- 小学六年级数学方程应用题100道附答案(完整版)
评论
0/150
提交评论