版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着网络通信技术和计算机技术的进一步开展,即时通信(InstantMessaging)正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应用中一个热点课题。即时通信软件的诞生,推动了企业工作效率的提高,降低了办公费用,给企业的管理带来了新的思路和方法,并引起了人们对该应用领域的关注。本文在现有的网络通信技术、数据库技术和信息平安技术的根底上设计并实现了新型的企业即时通信系统(EIM,EnterpriseInstantMessaging)。该系统为用户提供了一个集文字通信、文件传输于一体的即时通信平台,根本满足了企业用户的要求。在对即时通信系统的效劳器端和客户端的主要组成模块详细剖析后,论文研究了各个模块的详细设计和实现方式,分别研究了每个模块的主要功能,并给出了模块运行效果图。系统实现后,对系统进行了功能测试,并分析测试数据。实验数据说明,该系统具有易于实现、可靠性高、易于扩展、传输效率高等特点,到达了预定的设计目标。关键词:即时通信,Socket,通信模型,文件传输AbstractWiththenetworkcommunicationtechnologyandthefurtherdevelopmentofcomputertechnology,instantmessaging(InstantMessaging)isbecominganindispensablenetworkofonlinebusinessactivities;itsresearchisahottopicinInternetapplications.Thebirthofinstantmessagingsoftware,topromotetheworkefficiencyoftheenterprise,reducingbusinesscosts,totheenterprise'smanagementhasbroughtnewideasandmethods,andarousedtheconcernoftheapplications.Thesubjectintheexistingnetworkcommunicationtechnology,databasetechnologyandinformationsecuritytechnologybasedonthedesignandimplementationofanewtypeofenterpriseinstantmessagingsystem(EIM,EnterpriseInstantMessaging).Thesystemprovidesuserswithasetoftextcommunicationfiletransfer,instantmessagingplatformsinone,basicallymeettherequirementsofbusinessusers.Then,thepaperoftheinstantmessagingsystemserverandclientmodulesofthemaincomponentsofadetailedanalysis,discussesthedetaileddesignofeachmoduleandimplementation,respectively,describedthemainfunctionofeachmodule,andgivesthemoduleflowchart.Finally,thepaperoftheinstantmessagingsystemdesignedforserver-sideperformancetest,andtestdatawereanalyzed.Experimentaldatashowthatthesystemhaseasytoimplement,reliable,scalable,andhightransmissionefficiency,achieveditsdesigngoals.Keywords:InstantMessaging,Socket,CommunicationModel,FileTransfer目录1绪论11.1课题背景11.2研究现状11.3研究意义21.4研究内容31.5论文结构31.6本章小结42Socket相关技术研究52.1主流即时通信模型52.1.1P2P模型52.1.2C/S模型62.2即时通信主流的通信协议72.2.1UDP协议72.2.2TCP协议82.3Socket技术82.4多线程技术92.5JDBC技术102.6开发工具介绍112.6.1Eclipse简介11MySQL简介122.6.3Visio简介132.7本章小结133对Socket通信需求分析143.1即时通信系统总体需求143.2系统功能描述143.3系统协议的选定143.4系统设计性能分析153.5本章小结154实现Socket通信的方案和关键模块的设计164.1系统总体结构的描述16系统功能模块设计174.2效劳器端工作流程19客户端工作流程214.3总体实现方案和类的设计224.4关键模块详细设计与实现234.4.1利用Socket进行TCP连接23面向连接的Socket机制的模块设计274.5文件传输模块284.6本章小结295对程序进行调试与测试,并对结果进行分析305.1Socket通信的应用305.2聊天效劳器端305.3聊天客户端325.4聊天系统的运行界面33结论34具体工作如下34参考文献35致谢37附录A英语原文38附录B汉语翻译531绪论即时通信(InstantMessaging)软件是我国目前上网用户使用率最高的软件之一,即时通信系统(InstantMessagingSystem)可使人们在网上识别在线用户并与之实时交流。目前,即时通信和、一样,已经成为企业员工商务沟通中广泛使用的交流工具,但个人即时通信软件在提高了沟通效率的同时也带来了一些难以管理的问题,如平安性问题、用户伸缩性问题等。如何使即时通信真正为企业效劳,发挥其长处,并对其有效管理,已经成为研究的一个新课题。为此论文研究开发了企业级即时通信系统,此系统具备个人即时通信系统的功能,是一款可管理、可控制的企业级即时通信系统。通过对国内外现有的即时通信软件详细地分析研究,提出了不同的即时通信模型,构建了适合于企业的即时通信系统,并通过实践验证了其具有很好的可行性与适用性。1.1课题背景企事业的信息化开展,越来越需要不同系统协同工作,这就要求通过网络进行即时通信。现在企事业单位采用和电子邮件通信手段,虽然起了很大的沟通作用,但还是无法实现即时通信。还有些单位采用市面上流行的即时通信软件,比方ICQ、腾讯QQ、EMS等软件,但这些软件一般针对个人通信,属于公共效劳软件的一种,处于开放网络环境下,聊天对象与聊天内容不可控制,上班时使用EMS、QQ可能会降低工作效率。EMS、QQ必须登录Internet才能使用,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率和信息平安的隐患,所以并不太适合企(事)业内部的通信。还有的就是使用在本地局域网内即时传送消息和文件的小工具比方WinpopupX,它没有效劳器端,通过在线列表和操作系统的网上邻居获取在线用户或以网上邻居中的计算机为对象进行通信,没有平安性也不便于企业管理。在这种情况下,有必要自主开发企事业内部的即时通信软件[1]。1.2研究现状目前,信息产业在我国开展很快,已取得了一些成就。国家研究院对中国信息化调查结果显示,“实时企业〞这一概念被受访者认为是中国信息化最有应用前景的技术,认同率高达60%[2],显示了即时通信软件在国内市场强劲的开展势头。即时通信软件在中国市场迅猛增长,各路厂商们正在纷纷推出自己的产品,能满足企业需求的还是比拟少。而且目前的即时通信系统大多存在以下问题:1.标准化目前即时通信的开展存在的最突出问题就是相关通信协议和标准不统一,各个即时通信软件采用不同的语言和协议标准而无法相互通信[3]。由于各大即时通信厂家考虑自身的商业利益,到目前为止还没有完全制定统一标准的通信协议。但作为一种基于IP技术的通信根底软件,即时通信最终成为互通互联、开放式的在线通信工具肯定是大势所趋。即时通信已经成为语音及文本的在线实时通信的主要技术,它必将成为未来移动商务、在线协作及Internet应用的核心,同时也将继承IP技术的开放风格,扮演比电子邮件更为重要的角色。2.平安性在即时通信系统的开展过程中,如何保障系统平安、为用户提供的可靠效劳同样重要。一个即时通信系统可能会保存大量用户的个人信息,如何保证这些信息的平安将是一个长期课题[4]。所以,建立统一、完善的平安体系也是未来开展的一个主要趋势。3.伸缩性即时通信从支持几十个个人用户,到支持上百万的个人用户同时在线,这需要一个非常好的可伸缩性,如何建立一个好的可伸缩的体系结构支持高并发量的用户群体也是即时通信软件提供商要面临的问题。1.3研究意义随着网络技术的开展,即时通信正在成为在线活动中不可或缺的业务。由于即时通信效劳是一种公共效劳,处于开放网络环境下,因而它为企业或机构用户提供协作支持的同时,也带来了来自公众网络的干扰,存在影响工作效率甚至信息平安的隐患。从个人即时通信向企业即时通信的演化,是目前即时通信领域的研究热点[5],基于Socket的即时通信技术的出现那么解决了这一问题,其主要作用包括以下几个方面:1.应用了目前最为流行的即时通信技术,使员工之间快速、便捷的交流。将大局部工作由手工处理转变为计算机处理,减少了人工错误和通信本钱,提高了工作人员的工作效率。2.建立了一个局部的管理的环境,通过建立平安对等组,实现一个可在局部范围内从事特定工作的区域。3.建立了一个具有监督机制的环境,在平安对等组中,根据平安级别的上下,各个成员对等点的某些特定行为可以被监控并作相应记录。1.4研究内容通过对市场上现有的国内外商业级即时通信系统的功能、架构详细的研究,将一些技术和想法融入到系统的实现过程中,论文研究的基于Socket的局域网即时通信系统主要实现点对点的私聊、多人群聊、即时发送文件和历史记录的保存等功能。主要实现方法包括:1.利用WinSock技术实现实时通信整个系统通信基于TCP/IP的通信技术,通过调用WinSock的API实现相互之间的通信,而WinSock利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。2.采用P2P与C/S混合模式来实现整个系统的通信架构确定用户之间通信模式为P2P模式便于直接通信高效传输信息,用户与效劳器之间采用C/S模式用于通信的初始联接及保存用户信息和通信过程中的一些相关数据。3.应用多线程使网络效劳器具有了多用户访问数据转发的功能,进而解决多用户间的并发通信问题。4.通信协议的解析与约定确定客户端与效劳器端之间及客户端与客户端之间的通信协议。5.数据库的管理与应用研究系统效劳端使用的数据库访问技术。6.界面实现在界面实现的根底上完成具体的设计与实现工作。1.5论文结构论文共分六章。第一章为绪论,介绍了本文的研究背景,提出了实现即时通信的关键技术,并阐述了这些技术在国内外的研究现状以及开发此通信软件的必要性与可行性,进而提出了本文的研究方向,即设计一个企业即时通信系统。第二章对系统应用的相关技术进行描述,主要描述实现系统所需的通信原理、网络编程根底以及一些技术方面的根本概念与根本思想。第三章是系统总体设计,介绍了软件的整体(效劳器和客户机)设计思路和概要设计,从总体上介绍软件的设计要求、工作流程以及各个功能模块,对系统中的关键技术进行阐述。第四章对实现Socket通信的各个模块进行了研究与分析。第五章是系统的测试与结果分析,为了到达可靠性和可用性,对软件进行了功能测试。第六章也是全文的最后一章,对全文所开展的工作进行了总结。1.6本章小结本章首先介绍了该课题的课题背景,初步认识该系统,了解了研究该系统的重要性。接着介绍了国内外研究现状以及研究意义,了解了该系统在当今社会上的定位以便于在前人研究根底上能有所创新。接着介绍了研究内容,明确了该系统所研究的方向和内容。最后对整个论文的组织结构进行了描述,使参阅者对论文有大致了解。2Socket相关技术研究企业即时通信系统是在客户端效劳器程序设计根底上按照软件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现。本章主要研究主流的即时通信模型、网络通信技术、程序设计等。2.1主流即时通信模型当代主流的即时通信模型主要有P2P模型与C/S模型,两种软件各有利弊,许多计算公司把P2P和C/S一样的看重,经常把两者结合在一起使用。P2P模型P2P(PeertoPeer,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等[6]。相对于C/S模型,其弱化了效劳器的概念,系统中的各个节点不再区分效劳器和客户端的角色关系,每个节点既可请求效劳,也可提供效劳,节点之间可以直接交换资源和效劳而不必通过效劳器。P2P的最大特点就是用户之间直接共享资源,使得PC不再是被动的客户端,而成为具有效劳器和客户端双重特征的设备,当然P2P也有许多缺乏之处。首先P2P缺乏管理机制,管理者再也无法对其用户进行必要的管理,不像在C/S模式中只需在中心点进行管理,所以P2P模型的网络资源往往并不可靠[6]。其次P2P网络中数据的平安性难以保证,P2P模型如图2.1所示。图2.1P2P模型图C/S模型C/S(Client/Server,客户/效劳器)模型,简称C/S架构。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和效劳器上,降低系统通信开销。在这种结构中,效劳器处于一个中心地位。效劳器是一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在效劳器上。效劳器始终处于工作状态,一般同时为多个客户提供效劳,它被动地接受客户连接,根据客户的请求提供相应的效劳。这就造成了效劳器设计的复杂性。特别是像即时通信效劳器这类具有社区性的效劳器,它只有为群体提供效劳才有意义。即时通信效劳器是数据中心,需要同时应对众多客户的请求[7]。C/S通信主要特点是客户端之间的通信都要通过效劳器的转发,会造成效劳太集中,在C/S模型中,当网络增大时,效劳器的压力就越大。当增加一个客户,效劳器的性能就会弱化,甚至会而使效劳器失效而导致整个网络的瘫痪等,其优点是便于集中管理,像这种结构一般用在用户数量少的局域网内。C/S模型图如图2.2所示。图2.2C/S模型图2.2即时通信主流的通信协议传输控制协议TCP和用户数据报UDP是TCP/IP协议族的两个主要的传输协议,这两个协议都使用IP作为网络层协议[8]。在网络通信传输机制中,TCP是属于“面向连接,可靠传输〞的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之间建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。这种方法需要的网络开销较大,但却提供一种可靠的传输层效劳。UDP是属于“面向无连接,不可靠传输〞的类型,该协议只负责接收和传送上层协议传递的消息,UDP本身不做任何检测、修改与应答,上层协议需要自己处理这些事务。TCP、UDP最大的区别在于为应用协议提供不同的效劳。UDP协议用户数据报协议UDP是建立在网际协议之上的,提供面向无连接、不可靠的数据报传输效劳的传输协议[9]。UDP传输不像TCP传输一样需要预先建立一条连接,UDP把数据发送出去但不进行过失控制和流量控制,报文可能丧失、重复或者失序,而发送方却得不到通知的,数据也不会被重传。因此,UDP提供的是一种不可靠的应用数据传输效劳。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据播送到网络上,任何欲接收者都可接收到数据。其优点在于:1.使用UDP时,每个数据中都给出了完整的地址信息,发送数据之前不需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延。2.不使用拥塞控制,也不保证可靠传输,因此主机不需要维持具有许多参数的、复杂的连接状态表。3.UDP不进行流量控制,没有序列与确认、没有超时重发等机制,因此它处理和传输数据的速度快。作为一种面向无连接的传输协议,基于UDP的应用程序在高可靠性、地延迟的网络中运动的很好,但是在通信子网的效劳质量相对很低下的Internet上,它可能就无法运行了,因为数据报的丧失过于频繁。原因就在于UDP的不可靠性,而这些应用程序自身可能有没有提供可靠性保障。因此,基于UDP的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障,例如遗失数据报重重传、失序的数据报重新组合等。TCP协议TCP是一个面向连接的、可靠的传输层协议,协议提供的效劳包括面向连接、双向、有序并且无重复的数据流传送、有效的流量控制、全双工操作和多路复用。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比拟高的数据传输[9]。因此即时通信系统的消息传输一般是建立在TCP协议根底之上的,客户与效劳器之间都是通过TCP传输数据,效劳器端口一般固定。由于TCP是面向连接的,但是在国内目前IP地址短缺,很多时候采用通过局域网连入Internet的网络状况,TCP的对等连接显然不能满足所有的要求,而且目前由于黑客软件和病毒的泛滥,大局部上网的个人计算机都配置了防火墙在很大程度上阻止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的话采用通过效劳器中转的方式。2.3Socket技术随着Internet的迅猛开展,网络通信应用程序的开发成为一个研究热点。Windows环境下进行通信程序设计的最根本方法是采用Socket技术实现[10]。应用程序调用Socket的API(应用程序编程接口)实现相互之间的通信,又利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。Socket工作原理如图2.3所示:应用程序B应用程序A应用程序B应用程序A网络接口,例如,WindowsSocket网络接口,例如,WindowsSocket网络效劳协议接口,例如TCP/IP网络效劳协议接口,例如TCP/IP操作系统,例如Windows操作系统,例如Windows物理通信介质物理通信介质图2.3Socket工作原理图Sockets也称为套接字,是一种网络编程接口,它是通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字,它们是流式套接字(StreamSockets)和数据报套接字(DatagramSockets),这两种套接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不同的[11]。2.4多线程技术操作系统是一个多任务的系统,支持多任务调度和处理,基于该功能所提供的多任务空间,程序员可以完全控制应用程序中每一个片段的运行,从而编写高效率的应用程序。所谓多任务通常包括这样两大类:单进程和多线程。进程是指在系统中正在运行的一个应用程序,当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源[13];而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,线程是系统分配处理器时资源的根本单元,或者进程之内独立执行的一个单元,对于操作系统而言,其调度单元是线程[14]。每个线程都有自己的专有存放器,但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指,程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创立多个并行执行的线程来完成各自的任务,也就是多进程。多线程的应用可以大大地提高CPU的利用率,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待。在即时通信系统开发中,主要用多线程来解决多用户同时与效劳器进行通信以及客户端同时与其它多个客户端通信的问题。其根本设计思路是:效劳器端启动后,进入侦听模式,如果有客户端连接的信号收到,效劳器就自己新建一个Socket,然后新建一个线程用来和需要连接的客户端通信,同时,为了能够使windows窗口响应,还要发送事件给父窗口,接着自己继续侦听。新建的线程执行完毕,自动关闭连接,释放资源。这样,就实现了Socket的连接和多线程通信。2.5JDBC技术本系统采用的是客户/效劳器三层结构,即客户端、效劳器以及数据库。我们所用到的访问数据库的技术是JDBC。JDBC即活动的数据对象,是Microsoft开发的用于访问数据库的。其显著特点是快速、简单。JDBC(JavaDataBaseConnectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行〞的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的效劳提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java具有巩固、平安、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。Java和JDBC的结合使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到效劳器上,随后任何人就都可得到最新版本的应用程序[15]。简单地说,JDBC可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。2.6开发工具介绍在开发过程中主要用到Eclipse、MySQL数据库和MicrosoftOfficeVisio等工具,下面对这些开发工具做一下详细介绍。Eclipse简介Eclipse最初由OTI和IBM两家公司的IDE产品开发组创立,起始于1999年4月。IBM提供了最初的Eclipse代码根底。目前由IBM牵头,围绕着Eclipse工程已经开展成为了一个庞大的Eclipse联盟。Eclipse是一个开发源码工程,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此根底上开发各自的插件,因此越来越受人们关注[16]。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。Eclipse最初主要用来Java语言开发,但是目前也可以作为其他计算机语言比方C++和Python的开发工具。虽然大多数用户很乐于将Eclipse当作IDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境,这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。Eclipse主要特点:1.增加了WindowBuilder,一个流行的Eclipse开发GUI构建器,用户需要以安装插件的形式获得此功能。2.EclipseMarket,用户可以在线获取应用市场上种类繁多的Eclipse插件(包括免费的和收费的),相比原来的Installnewsoftware(现在仍然存在并可用),更加直接和便捷。3.Xtext2.0使得它更容易创立领域特定语言。4.EGit1.0提供Git版本控制系统的紧密集成。5.更好地与Maven整合,包括启动Maven的构建和维护pom文件。6.Jubula提供Java和HTML的自动化GUI测试功能。MySQL简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2023年1月16号被Sun公司收购。而2023年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言〞。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有本钱低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有本钱而选择了MySQL作为网站数据库[17]。MySQL数据库还有以下特点:1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。2.支持Linux、MacOS、Solaris、Windows等多种操作系统。3.为多种编程语言提供了API。这些编程语言包括C、C++、Java、PHP等。4.支持多线程,充分利用CPU资源。5.优化的SQL查询算法,有效地提高查询速度。6.既能够作为一个单独的应用程序应用在客户端效劳器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。8.提供用于管理、检查、优化数据库操作的管理工具。9.可以处理拥有上千万条记录的大型数据库。10.支持多种存储引擎。Visio简介MicrosoftOfficeVisio是微软公司出品的一款的软件,它有助于IT和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的复杂文本和表格转换为一目了然的Visio图。该软件通过创立与数据相关的Visio图来显示数据,这些图易于刷新,并能够显著提高生产率。使用OfficeVisio中的各种图表了解、操作和共享企业内组织系统、资源和流程的有关信息[18]。虽然Visio是绘制流程图使用率最高的软件之一,但也有自己的一些缺乏。所以,结合实际情况选择适宜的替代工具不失为一种明智的选择。。2.7本章小结本章对系统所应用的技术进行描述,首先对系统所使用的模型进行了描述,对两种模型进行了比照。接着对系统所使用的协议进行描述,阐述了各自的优缺点。接着对系统所用到的技术进行描述。以便于查找相关资料,掌握相关技术。3对Socket通信需求分析根据前面所研究和分析的两种通信模型及关键技术,本章将这些技术同系统的需求联系起来,提出了系统的总体结构和工作流程。系统采用基于TCP/IP协议之上的C/S与P2P混合结构,即客户端与效劳器之间的C/S通信结构和客户端之间的P2P通信结构的结合。系统的工作流程分为效劳器端和客户端工作流程。3.1即时通信系统总体需求即时通信系统主要用于实现政府机构、企业单位、社区生活的网络化,促使政府机构、企业单位、社区信息文件即时发布和快速传达。即时通信系统以“先进合理的应用理念〞、“高效率的通信效劳〞,为用户提供了一套快捷的即时信息交流和办公的平台,以增强企事业单位内部的信息交流,解决其内部信息公告、信息交流、文件传送等问题,降低沟通本钱,提高单位的工作效率,为各企事业单位提供方便、快捷的即时通信效劳[19]。3.2系统功能描述本系统主要实现点对点的私聊,多人群聊,发送网络图片,即时发送文件,历史记录的保存等功能。同时保证数据即时快速的传递。表3.1所示。表3.1系统功能表文本通信点对点会话通信,点对多点的消息和通知群发,信息存储等功能文件传输效劳器共享文件查询,客户端上传文件,客户端下载文件等历史记录保存对用户的通话记录进行管理3.3系统协议的选定系统的传输协议可以采用TCP与UDP两种协议。由于本设计中信息的交互在效劳器与客户机、客户机与客户机之间进行,对效劳器与客户机的信息传输可靠性要求比拟高,因此通过TCP来实现,而客户机与客户机之间要求信息传输效率高,通信协议就可采用UDP协议。在本系统的设计中,协议选择既有TCP协议也有UDP协议,系统中的C/S模式采用TCP协议,P2P模式采用UDP协议。由于文件传输局部需要保证文件的准确无误的传送,因此在客户机与客户机之间采用TCP协议来实现。3.4系统设计性能分析作为企(事)业单位内部员工简便的办公和沟通平台,企业即时通信系统需要保证数据通信的即时性以及通信过程和信息存储的平安性[20],为企事业单位的使用者提供信息平安保障,同时减少系统资源的消耗,保证系统运行的低故障率。这些都是一个有实用价值的软件必须具备的性能,具体如以下四点所述:1.数据通信完整与可靠性:即时通信即用户间能实时发送和接收各种信息,包括文本通信和文件传输,确保数据的可到达性、确保数据解读的正确性,防止数据丧失或数据错位,从而保证消息传送的可靠性。2.通信效率和公平性:这主要表达在效劳器端。效劳器需要同时处理所有用户发送的各类信息,并且完成数据库存储、读取、更新等操作;还需要采用适当方法提高效劳器接收、解读、处理和发送数据的效率,在指定时间内完成需要的通信量,提高系统的即时通信性能,同时保证数据处理的公平性,保证各客户端的信息能够被及时响应和处理。3.系统可控性:系统可控性是指系统运行期间完成数据存储、数据库备份、系统故障恢复等任务的性能,包括用户注册管理、登录管理、客户端运行过程中监控等模块的设计。防止重要数据的丧失或被篡改,提高系统的运行可靠性,增强系统使用者的信心。3.5本章小结本章主要对系统的总体设计及功能模块进行描述,首先对系统的总体需求进行分析,然后介绍各功能模块,最后对客户端,和效劳器的工作流程进行了描述,并画出流程图,为开发系统做好准备。4实现Socket通信的方案和关键模块的设计4.1系统总体结构的描述即时通信系统是在某一个或假设干个企事业单位内部使用的即时沟通和办公通信的工具和平台,具有即时通信、用户群特定等特点。本系统采用的是三层式的C/S构架来保证网络通信的机制:客户端、效劳器端,效劳数据库。客户端利用TCP通信协议,并通过基于UDP通信协议的P2P技术与其他客户端进行交流;效劳器处理客户端发送来的信息,并利用TCP通信协议将信息反应回客户端以及保存用户的在线与离线状态;效劳数据库主要负责用户注册信息保存,用户聊天记录的保存。其系统总体框架如图4.1所示。数据库服数据库服务器JDBCC/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)文字通信文字通信用户用户用户用户文字传输文字传输图4.3即时通信系统框架图(P2P)系统功能模块设计根据企业内部沟通的需要,以及从实际出发,系统功能模块图如图4.4所示:1.效劳器功能(1)部门和用户管理功能模块在企业内部沟通中必须得了解企业内部的组织架构,这个模块就是系统管理员在按照企业实际组织结构,创立了各级部门并输入部门信息,然后根据部门再创立用户信息,用户不需要自由的添加,最终完成企业组织的搭建;(2)用户登录处理模块此模块主要是进行登录验证,如果验证通过,效劳器会将数据库中的用户状态改为在线,并通知其他在线用户;(3)用户状态通知模块用户进行状态检测,好友在线,在好友列表中显示,如果好友不在列表中,即时通信功能模块即时通信功能模块客户端客户端效劳器效劳器用户下线模块历史记录查询模块文本通信模块文本通信模块用户登录与注册模块用户下线模块历史记录查询模块文本通信模块文本通信模块用户登录与注册模块用户文件转模块发用户下线处理模块用户消息转发模块用户状态通知模块用户登录管理模块部门用户管理模块用户文件转模块发用户下线处理模块用户消息转发模块用户状态通知模块用户登录管理模块部门用户管理模块图图4.4系统功能模块图用户状态为离线;(4)用户消息、文件转发用于发给离线用户的消息或文件;(5)用户下线处理模块用户下线,断开连接,修改数据库中的用户状态并通知其他用户;2.客户端功能客户端提供用户友好操作界面,负责发出请求和接收结果,主要功能有用户登录、文字通信、文件传输、历史记录保存、好友管理等,通过底层协议传输数据,并在协议解析模块解析信息。4.2效劳器端工作流程效劳器运行后,开启效劳,那么效劳器开始侦听用户请求,如有信息发送过来,效劳器首先发送回确认信息,然后,建立一个线程,处理接收到的数据。在线程里,按照接收到数据的类别(用特殊字符来区分),进行相应的处理,如有需要,会向用户发送处理的结果,处理结束后,线程就结束了。这样,可以实时接收每个用户的请求,不会因为处理一个用户的请求,而忽略了其它用户。效劳器端即时通信工作流程如图4.5所示。开始开始启动效劳启动效劳监听客户端连接监听客户端连接返回返回 N 用户连接请求用户连接请求 N 登录成功登录成功用户登录Y用户登录 Y 建立合法连接,显示用户上线通知建立合法连接,显示用户上线通知响应用户发出的请求响应用户发出的请求对方上线 Y 对方上线文本通信保存到本地连接 N文本通信保存到本地连接 Y建立连接文本传输 N 建立连接文本传输 Y转发给对方转发给对方完成文件传输用户退出N完成文件传输用户退出 N保存文件用户下线通知Y保存文件用户下线通知退出退出图4.5效劳器端工作流程客户端工作流程客户端即时通信流程如图4.6所示。开始开始显示登录界面显示登录界面 N 验证成功建立连接验证成功建立连接结束结束 Y显示主界面显示主界面文件传输添加删除好友文件传输文件传输添加删除好友文件传输向效劳器发送请求向效劳器发送请求效劳器接受请求并处理效劳器接受请求并处理实现用户请求实现用户请求客户端客户端退出 N Y结束结束图4.6客户端通信流程图客户端的即时通信工作流程可作如下描述:1.启动客户端,首先进行注册,注册成功2.显示登录主界面,输入账号和密码,用户开始登录;3.客户端开始在线侦听,用户可以在主界面进行某种操作;4.用户可以发送各种聊天信息,文件传输请求等应用请求;5.请求发出后自动等待效劳器返回的数据,解读该数据并判定请求的结果;6.执行结果,并保存处理信息至本地链接(假设干文件组成);7.在客户端退出前循环执行用户的各种操作,并发送各种请求;8.客户端退出那么断开该连接。4.3总体实现方案和类的设计1.系统总体实现方案系统将采用C/S方式设计,效劳器主要为客户端效劳,通过响应客户端的请求访问数据库,给用户提供相应的信息,效劳器数据库使用MySql做数据库管理系统。信息交流的绝大局部功能都在系统的客户端完成。客户端主要功能都是基于P2P技术的,因此客户端功能的实现主要就是如何建立P2P的连接,建立连接后就能轻松完成包括发送消息,文本交谈,发送文件等功能。2.系统通信核心类类用于描述一组具有相同属性、操作、关系和语义的对象[20]。其中主要包括消息类和类图,基nnectio类ConThread,另外还有其它的10几个类,分别用于各种类型的操作。(1)ConnectionThread该类是客户端发送给效劳器消息,接收效劳器消息的类,也是客户端众多线程中的主线程(2)RegisterInfo和RegisterFrameRegisterFrame类用来生成注册页面,完成注册界面相应的布局,RegisterInfo类用来生成填写注册信息界面,验证注册信息格式是否正确,如果不正确给出相应的提示信息(3)ChatF和ChatF1ChatF1类主要实现客户端与客户端点对点的私聊,实现文件传输,发送消息主要用函数sendMessage(),文件传输主要在actionPerformed()中实现,ChatF类主要实现多人群聊发送消息也是用函数sendMessage()来实现(4)History该类主要用于历史记录读取,关闭聊天窗口,如果历史记录为空给出提示信息(5)ListF主要用于生成在线好友列表(6)FindFriendFrame该类主要用于根据qq号查找好友,然后添加好友,实现通信(7)Dao该类用于实现效劳器与数据库的连接,处理数据(8)Server该类是效劳器实现通信,与客户端进行交互的类,用于接收客户端的各种操作请求,处理相应的请求(每个请求由特殊字符来区分),响应请求,实现客户端与客户端,客户端与效劳器实现通信。4.4关键模块详细设计与实现主要对各个功能模块实现做具体的描述,加深对系统的认识。4.4.1利用Socket进行TCP连接Socket进行TCP网络连接,是一种客户/效劳器的连接类型,利用Socket的API进行连接的程序时序图如图4.7所示。TCP客户端TCP效劳端TCP客户端TCP效劳端Socket〔〕Socket〔〕Bind〔〕Bind〔〕Socket〔〕Listen〔〕Socket〔〕Listen〔〕Accept〔〕Accept〔〕等待客户请求Connect〔〕等待客户请求Connect〔〕Send〔〕Recv〔〕Send〔〕Recv〔〕Recv〔〕Send〔〕Recv〔〕Send〔〕CloseSocket〔〕CloseSocket〔〕CloseSocket〔〕CloseSocket〔〕图4.7Socket的TCP连接时序图1.流式套接字流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的面向连接的数据传输方式。不管是对单个的数据报,还是对数据包,流式套接字都提供了一种流式数据传输,是TCP传输协议的接口[12]。当用户想发送大批量数据或想让发送的数据按顺序无重复地到达目的地时,使用流式套接字是最方便的。此外,在数据传输时,如果连接断开,应用程序会被通知的。由于流式套接字用的是面向连接的协议,所以必须首先建立连接然后才能从数据流中读出数据,而不是从一个数据报或一个记录读出数据。流式套接字的效劳进程和客户进程在通信前必须创立各自的套接字并建立连接,然后才能对相应的套接字进行“读〞、“写〞操作,实现数据传输。使用流式套接字时,用户在发送、接收数据之前同样必须首先建立连接,然后才能传输数据,流式套接字编程模型的工作流程如图4.7所示。首先,效劳器要创立一个用于监听的套接字,把它绑定到众所周知的效劳器端口上,然后调用listen函数使它处于监听状态;客户机在创立套接字后,即可调用connect函数,请求与效劳器套接字连接;效劳器套接字在收到客户机的连接请求后,调用accept函数来接收客户机的连接请求,并创立另一个用于通信的套接字。用此套接字和客户机上的套接字形成网络通信管道的两个端点,然后就可以在效劳器和客户机之间进行数据传输了。效劳器上的监听套接字仍处于监听的状态,随时准备接受其他客户机的连接请求。传输结束后,客户机调用closeSocket函数关闭套接字,效劳器也调用该函数关闭用于监听和通信的套接字,释放资源。2.数据报套接字数据报套接字节提供了不可靠的、无连接的数据包通信方式。数据通过相互独立的报文进行传输,是无序的,并且不保证报文的可靠、无过失。实际使用中,数据报套接字一般用于一些轻负载的局域网上的计算机之间的通信,同一个分组数据报可能不止一次地被发送,一般要等到接收方发回确认收到的消息才停止发送。对于在TCP/IP上实现的Socket,数据报套接字节使用UDP协议[9]。无连接的效劳器一般都是面向事务处理的,大多数的数据报套接字应用程序将使用一个事件序列来完成客户应用程序和效劳器应用程序之间的通信,其编程过程相对流式套接字要简单些如图4.8所示。对于接收端(一般为效劳器端),先用Socket函数建立套接字,在通过bind函数把这个套接字和准备接收数据的IP地址信息绑定在一起,这和前面流套接字一样,但不同的是它不必调用listen和accept,只需要等待接收数据。并且由于它是无连接的,因此可以接收网络上任何一台机器所发的数据包。图4.8、图4.9别为流式套接字和数据报套接字应用程序时序图。Socket〔〕Socket〔〕Socket〔〕Socket〔〕Bind〔〕Bind〔〕Rendform()〔〕Rendform()〔〕Bind〔〕Bind〔〕等待客户请求等待客户请求效劳请求Send〔〕处理请求Send〔〕处理请求效劳响应Rendform()Send〔〕Rendform()Send〔〕Close〔〕Close()Close〔〕Close()图4.8流式套接字图Socket〔〕Socket〔〕Bind〔〕Bind〔〕Listen〔〕Listen〔〕Socket〔〕Socket〔〕Accept〔〕Accept〔〕Connect〔〕建立连接Connect〔〕等待客户请求等待客户请求Rend〔〕请求数据Write〔〕Rend〔〕Write〔〕应答数据Write〔〕Read〔〕Write〔〕Read〔〕Close〔〕Close〔〕Close〔〕Close〔〕图4.9数据报套接字图面向连接的Socket机制的模块设计图4.10是一个典型的面向连接的Socket通信机制的示意图。它首先由效劳器建立Socket并将该Socket联编到某个端口上,并进入监听状态,同时监听是否有与自己端口相对应的连接请求。连接是由客户发出的,客户方在建立自己的Socket后,向效劳器发出连接请求,效劳器在检测到连接后接受,这样就建立了一个完整的Socket连接。从图4.10可以看出,效劳器方必须首先启动,然后守候在某一个端口上监听客户方的连接请求,一旦连接建立,就可以像普通流机制那样进行读/写,只需调用close〔〕即可结束Socket连接。通过该方式建立起来的C/S程序即可实现一台效劳器端和一台客户端的通信。效劳器端联编到某一个端口联编到某一个端口调用bind创立效劳器端Sock〔〕创立效劳器端Sock〔〕客户端创立服客户端Socket〔〕监听来自客户端的连接请求,调用listen创立服客户端Socket〔〕监听来自客户端的连接请求,调用listen向效劳器端发送连接请求调用connect〔〕阻塞,等待客户端连接请求调用accept〔〕向效劳器端发送连接请求调用connect〔〕阻塞,等待客户端连接请求调用accept〔〕 效劳请求接受来自于客户的请求数据,调用read〔〕发送请求数据调用接受来自于客户的请求数据,调用read〔〕发送请求数据调用write〔〕数据请求数据数据请求数据接受响应数据返回相应的数据调用write〔〕接受响应数据返回相应的数据调用write〔〕图4-1基于连接的效劳端、客户端流程图图4.104.5文件传输模块1.文件传输的实现文件传输是通过使用多线程、套接字、自定义的传输命令等技巧,实现了多个用户之间文件传输,并可以在传输过程中进行简单交互的功能。文件传输除了能实现文件的接收与发送的根本功能外,还需要考虑以下方面:(1)文件在传输过程中应不影响用户界面的操作;(2)在传输文件前,发送方应先发送请求,接收方可以同意或拒绝文件发送,接收方同意后才能进行文件传输;(3)在文件在传输过程中,可以显示文件的信息,如文件名、保存路径、文件大小;(4)文件在传输过程中接收方和发送方都可以取消该文件传输过程;(5)一个用户可以同时和多个用户进行文件传输,而且每两个用户之间,可以同时接收或发送多个文件,接收和发送可以同时进行。本系统文件传输的实现主要由ClientTest、ClientSocket、Jprocess和ServerTest类实现。其中ServerTest类主要用于发送文件,ClientTest类用于计算文件的长度、接收文件,Jprocess类用于生成文件发送的进度条,文件传输功能实现如图4.11所示。图4.11文件传输功能实现图2.文件传输的执行流程首先是文件发送端与接收端启用发送线程与监听线程,发送端向接收端提出连接请求,接收端收到请求后启用接收线程,接收端在收到文件属性后,发送同意接收消息,双方就可以开始发送与接收文件,直到发送完毕。4.5本章小结本章首先进行了对系统的总体实现方案和类的设计进行了研究,研究了它所用到的协议,其次说明了各类的功能,再说明了系统如何实现各个功能,最后概述了系统的详细设计和具体实现方法,画出了各局部的图示。5对程序进行调试与测试,并对结果进行分析5.1Socket通信的应用结合上面的Socket通信的根本原理,下面用java实现了流式Socket通信多用户聊天系统.从总体来看,这是一个支持多Client的Socket通信的聊天系统,根据设计过程中效劳器和客户连接的方式,有两种解决的方案;方案一:在一台计算机上启动多个效劳器程序,而指定效劳器监听端口号不同,一个效劳器对应一个客户机。方案二:将效劳器写成多线程的,不同的处理线程为不同的客户效劳.主线程只负责循环等待,处理线程负责网络连接,接收客户输入的信息。考虑到第一种方案,如果要启动多个客户的话,要占用的监听端口号多,通信比第二种方案更不方便,所以下面我是采用第二种方案来实现的。5.2聊天效劳器端聊天效劳端的主要任务有两个:一是监听某端口,建立与客户的Socket连接,处理一个客户的连接后,能很快再进入监听状态;二是处理与客户的通信,由于聊天是客户之间进行,所以效劳器的职责是将客户发送的消息转发给其他客户。为了实现两个目标,必须设法将任务分开,可以借助多线程技术,在效劳方为每个客户连接建立一个通信线程,通信线程负责接受客户的消息并将消息转发给其他客户。这样主程序的任务就简单化,循环监听客户连接,每个客户连接成功后,创立一个通信线程,并将与Socket对应的输入输出流传给该线程。程序代码如下:public〔lasstalkserver{publicstaticClient]allclient=nc}vClient[20};//存放所有通信线程publicstaticintclientnum=0;//连接客户数publicstaticvoidmain(Stringargs}]){try{ServerSockets=nrwServerSocket(8000);//建立监听效劳while(true){Sockets1=s.accept();//等待客户连接DataOutputStream<los=nc}vDataOutputStream(s1.get0utputStream());DatalnputStreamdin=newDatalnputStream(s1.getInputStream());allclient}〔lientnum}=nc}vClient(dientnum,dos,din);allclient}clientnum}.start();//创立与客户对应的通信线〔lientnum++;}}〔atch(IOExceptione){}}}〔lassClientextendsThread{intid;//客户标识DataOutputStream<los;//去往客户的输出流DatalnputStreamdin;//来自客户的输入流publicClient(inti<1,DataOutputStream<los,DatalnputStreamdin){this.i<1=i<1;this.<los=<los;this.<lin=<lin;}publicvoidrun(){while(true)//循环读取客户数据转发给其他客户(try(intm=talks。二.clientnum;//客户数Stringmessage=“第〞+(id+1)+“个客户发言:〞+din.readUTF();//读客户数据,无数据时线程挂起。for(inti=0;i<m;i++){talks。二.alldient}i}.<los.writeUTF(metesage);//转发给其他户}}〔atch(IOExceptione){}}}}每个通信线程均在循环检测是否本线程对应的客户有数据发送过来,一旦接收到数据就通过循环将数据发送到所有客户(包括自己)的Socket通道。5.3聊天客户端客户端的职责也有两个:一是能提供一个图形界面实现聊天信息的输入和显示,其中包括处理用户输入事件;二是要随时接收来自其他客户的信息并显示出来.因此,在客户端也采用多线程实现,应用程序主线程负责图形界面的输入处理,而接收消息线程负责读取其它客户发来的数据。每个用户首先向效劳器请求连接后,才能与其他客户进行连接.所以对应效劳器端端口等待连接,在客户端要请求效劳器连接,也即先实例化Socket类,传入主机的ip地址和效劳器端口号。Sockets1=newSocket(“LBG",8000);主机接收到请求后,建立连接,效劳端产生一个Socket实例,同该客户端建立通信,效劳器端和客户端同时翻开输入和输出流进行数据的传输。DataInputStre}n<lis=newDataInputStre}n(s1.gelInputStream());finalDataOutputStrearn<los=newDataOutputStrearn(s1.get0utputStream());当客户要发送数据的时候,先将数据发送到效劳器,然后由效劳器转发给其他正在检测的用户,下面代码就是主要负责向其他客户发送数据。publicvoidactionPerformed(ActionEvente){try{<los.writeUTF(""+input.getText());//发送数据}〔itch(IOExceptionz){}}});客户端必须时刻检测效劳器端有无数据数据发出,如果检测到其他客户发送了消息后,接收消息线程读取网络消息,显示在聊天界面中。try{Stringstr=newString(dis.readUTF());//读取其他客户经效劳器转发的消息<Iisplayarea.append(str+"/n");//将消息添加到文本域显示}〔atch(IOExceptione){}5.4聊天系统的运行界面图5.1是聊天系统的运行界面,其中第一个是效劳器,其他是三个不同的客户。图5.1系统运行界面5.5本章小结这是一个流式Socket通信的应用,实现了网上多用户聊天,在系统中还有许多方面值得改良,例如:如何修改效劳方,使用户自己发送的消息不显示在自己的文本域中;增加一个用户名输入界面,用户输入身份后再进入聊天界面;在客户方显示用户列表,可以选择将信息发送给哪些用户.这些方面得到改良后就可以极大地提高其应用价值。结论本文主要研究和实现了一种符合当前学校实际应用需求的即时通信系统。课题研究了两层C/S模型和P2P模型混合设计的模式,不同类型的效劳采用不同的通信模型,有效减轻效劳器负担,提高了网络利用率。该系统按照面向对象方法设计并封装了大量的类,并且大量采用了多线程技术,这些方法和技术有效增强了效劳器的并发处理能力,同时也有利于系统开发与维护工作的开展。具体工作如下1.研究了即时通信技术的开展历程,以及主流即时通信系统采用的通信模式和通信协议;目前主要的即时通信模式包括P2P和C/S模式,主要的即时通信通用协议包括了基于TCP协议和基于UDP协议及各大厂商各自定义私有协议;分析了主流信息系统在应用环境中存在的缺乏。2.分析了一个P2P和C/S相结合的混合通信模型。使用TCP协议与UDP协议分别实现了客户机与效劳器之问的C/S通信模型以及客户机与客户机之间的P2P通信模型,有效减轻了效劳器的负担。3.设计并实现了一个即时通信系统,包括了即时通信效劳端和即时通信客户端;即时通信效劳器主要实现部门与用户信息管理、接收客户端登录、下线、离线的文本信息、向客户端发送状态通知、离线的文本信息等功能;即时通信客户端主要实现登录效劳器、文本、文件通信等功能。4.通过测试环境和实际网络环境,对即时通信系统进行了功能测试,验证了即时通信系统的有效性、高效性。参考文献[1]佘其炯.数字通信世界.即时通信系统的现状与开展趋势[J],2007,06:41-43[2]姚翌.腾讯通RTX3.3发布企业互联与集成技术世界领先[J].计算机与网络2004,07(30):15-16[3]李远杰等.主流即时通软件通信协议分析术[J].计算机应用研究,2005,07(15):4-6[4]王宇,卢昱.计算机工程.信息网络的通信平安控制[J],2006(32卷、12期):173-175[5]康晓宁.让沟通随时进行——中建国际企业即时通信应用实例[J].微电脑世界,2004,04:14-16[6]王珊,萨师煊的数据库系统概论〔第四版〕[M].北京高等教育出版社,2007[7]严俊海.java程序设计教程.清华大学出版社,2007[8](美)DouglasE.Comer,DavidL.Stevens著.TCP/IP网络互联技术卷3,客户.效劳器编程与应用(Windows套接字版)[M].北京:清华大学出版社,2004,6:1.300[9]何进,谢松巍.基于Socket的TCP/IP网络通讯模式研究[J].计算机应用研究;2001年08期[10]张海藩.软件工程导论[M].北京清华大学出版社,2023[11]周坤,傅德胜.计算机工程与设计.基于WindowsSocket的网络数据传输及其平安[J],2007(28):5381-5388[12]谢希仁.计算机网络(第五版)[M].北京电子工业出版社,2023.184-188[13]耿祥议,张跃平.Java2实用教程[M].清华大学出版社,2023,10:226-411[14]戴大蒙.基于非阻塞式Winsock的多线程网络通信机制[J].计算机工程,2006,6:25-27[15]JDBC-百度百科.://baike.baidu/view/2737974.htm.2011-8-15[16]Eclipse-百度百科.://baike.baidu/view/23576.htm.2011-10-26[17]MySQl-百度百科.://baike.baidu/view/24816.htm.2011-8-15[18]Visio-百度百科.://baike.baidu/view/18289.htm.2011-10-18[19]康晓宁.让沟通随时进行——中建国际企业即时通信应用实例[J].微电脑世界,2004,(4):14-16[20]聂元铭,丘平编著.网络信息平安技术[M].北京:科学出版社,2001,〔02〕:1-200[21][美]沙赫(SchachS.R.)著.面向对象与经典软件工程[M].北京:机械工业出版社,2002,10:1-103[22]胡荷芬,张帆,高斐.UML系统建模根底教程.清华大学出版社,2023,(05)致谢感谢沈阳理工大学对我几年的培养!本课题在论文的写作过程中,得到了教授的悉心指导。屡次询问开发进程,帮助我开拓开发思路,并给予热忱鼓励。赵运弢副教授严谨的治学态度,乐观随和的处事态度,不仅教我如何设计和写作,更重要的是教会了我为人处事的态度和方法,虽历时仅数月,却让我终生受益。临近毕业,特别感谢我的辅导员解颖老师四年来对我的关心和帮助,她年轻的朝气和踏踏实实的作风,不仅激发我更加勤奋好学,而且从多方面给我带来积极的影响。其次是感谢父母对我的养育,父母让我接受良好的教育,不仅让我学会了为人处事的道理还让我学到了珍贵的知识,为我踏入社会打下了根底。最后是感谢我的同学对我的支持和帮助。论文的完成,离不开老师和同学们的帮助,对于我来说,这是一笔值得我珍惜的巨大财富。忠心的感谢所有教过和未教过我的老师们,谢谢你们对我们的付出,我祝愿每位老师在今后的工作中一帆风顺,生活幸福。附录A英语原文AdvancesincomputernetworkcommunicationtechnologyThe1990swastherapiddevelopmentofinformationandcommunicationtechnologyera.Intheexchangeoftechnology,digitalanddatacommunicationsonthebasisoftechnologicaldevelopment,computernetworktechnologyandinformationcommunicationtechnologycloselyintegratedrelationshipfurther,informationandcommunicationtechnologythankstocomputertechnologyandthelatestachievementsinmicroelectronics,hasbeenanunprecedenteddevelopment.Thedevelopmentofdigitalsignaltechnologytomaketraditionalanalogsignalstodigitalcommunicationstechnologychanges.Currently,data,text,voice,imagesandvideoandothermultimediainformationcommunicationhasbecomeareality,IntegratedServicesDigitalNetwork((ISDN)communicationservicesintherapidlydeveloping.Circuitswitching,packetswitching,usingawiredorwirelesschannels,includingridgepaircable,coaxialcable,fiberopticcable,terrestrialmicrowaveandsatellitechannelcombinedwitheachother,weavingavarietyofcommunicationnetworks,coveringfixedandmobilecommunications,acrosstimeandspaceconstraints,fornewscommunication,culture,sciencecommunication,informationconsultingservices,officemanagementaswellashumanwork,productionandlifeinallaspectsofinformationandcommunicationtocreateunprecedentedconditions,gaverisetoanewtechnologicallevel.
Incomputernetworksandinformationandcommunicationtechnologywithgeneralizedevolutionprocess,themainroleistocomputernetworkcommunication.Articleoutlinessomeofthefollowingelements:1computernetworkcommunicationtechnologydevelopmentinfourmainstages;2computerLANandWANtechnologydevelopment;3ATMtransmissiontechnology;4ATMLANemulationtechnology;5computernetworkcommunicationsequipmenttechnologydevelopment.Acomputernetworkcommunication.
Thefourmainstagesoftechnologicaldevelopmentcomputernetworkcommunicationhasundergonethreemainstages,isnowenteringitsfourthstageineachofthesestagesbyastageofgenerationofcomputerhardware,devicedriversandapplications,andeachstagegreatlyexpandedthecomputerapplications.1.1Thefirstphase(1965to1975).
Itisdominatedbylargecentralmainframecomputingperiod,whichisgeneratedduringaseriesofdedicatednetworkarchitecture(typicallysuchasIBM'sSNA).Itprovidesthehostandterm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夫妻内部追偿制度
- 服务区内部人员管理制度
- 朝天区科协内部控制制度
- 步行街内部管理制度
- 测绘内部质量审核制度
- 班前会议内部制度
- 班组内部运作规范制度
- 电商部门内部管理制度
- 福建省内部审计工作制度
- 迪普斯教育内部管理制度
- 2026春道德与法治二年级下册《身心健康很重要》教学设计
- 平行线的判定课件2025-2026学年人教版数学七年级下册
- 2026年春季学期校园“1530”安全教育记录表
- GB/T 4745-2012纺织品防水性能的检测和评价沾水法
- GB/T 11263-1998热轧H型钢和剖分T型钢
- 03【教案】 项目三 数控编程基础知识
- 中小学体育教师职称晋升面试答辩真题解密
- 接触网技术规格书3电连接线
- 《大学物理》说课课件
- 第1课 隋朝的统一与灭亡 同步练习(含答案)
- 双层升降横移式立体车库设计说明
评论
0/150
提交评论