欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    基于SOCKET的即时通信系统设计与实现.docx

    • 资源ID:3385040       资源大小:84.70KB        全文页数:89页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于SOCKET的即时通信系统设计与实现.docx

    基于SOCKET的即时通信系统设计与实现摘 要 随着网络通信技术和计算机技术的进一步发展,即时通信(Instant Messaging)正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应用中一个热点课题。即时通信软件的诞生,推动了企业工作效率的提高,降低了办公费用,给企业的管理带来了新的思路和方法,并引起了人们对该应用领域的关注。 本文在现有的网络通信技术、数据库技术和信息安全技术的基础上设计并实现了新型的企业即时通信系统(EIM,Enterprise Instant Messaging)。该系统为用户提供了一个集文字通信、文件传输于一体的即时通信平台,基本满足了企业用户的要求。在对即时通信系统的服务器端和客户端的主要组成模块详细剖析后,论文研究了各个模块的详细设计和实现方式,分别研究了每个模块的主要功能,并给出了模块运行效果图。系统实现后,对系统进行了功能测试,并分析测试数据。实验数据表明,该系统具有易于实现、可靠性高、易于扩展、传输效率高等特点,达到了预定的设计目标。 关键词:即时通信,Socket,通信模型, 文件传输 I 理工大学学士学位论文 Abstract With the network communication technology and the further development of computer technology, instant messaging (Instant Messaging) 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 enterprise's management has brought new ideas and 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). 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 detailed 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 has easy to implement, reliable, scalable, and high transmission efficiency, achieved its design goals. Keywords: Instant Messaging, Socket, Communication Model, File Transfer II 理工大学学士学位论文 目 录 1 绪论 . 1 1.1 课题背景 . 1 1.2 研究现状 . 1 1.3 研究意义 . 2 1.4 研究内容 . 3 1.5 论文结构 . 3 1.6 本章小结 . 4 2 SOCKET相关技术研究 . 5 2.1 主流即时通信模型 . 5 2.1.1 P2P模型 . 5 2.1.2 C/S模型 . 6 2.2 即时通信主流的通信协议 . 7 2.2.1 UDP协议 . 7 2.2.2 TCP协议 . 8 2.3 SOCKET技术 . 8 2.4 多线程技术 . 9 2.5 JDBC技术 . 10 2.6 开发工具介绍 . 11 2.6.1 Eclipse简介. 11 2.6.2 MySQL简介 . 12 2.6.3 Visio简介 . 13 2.7 本章小结 . 13 3 对SOCKET通信需求分析 . 14 3.1 即时通信系统总体需求 . 14 3.2 系统功能描述 . 14 3.3 系统协议的选定 . 14 3.4系统设计性能分析 . 15 3.5 本章小结 . 15 4实现SOCKET通信的方案和关键模块的设计 . 16 4.1系统总体结构的描述 . 16 4.1.1系统功能模块设计 . 17 4.2服务器端工作流程 . 19 4.2.1客户端工作流程 . 21 4.3 总体实现方案和类的设计 . 22 4.4关键模块详细设计与实现 . 23 4.4.1 利用Socket进行TCP连接 . 23 4.4.2面向连接的Socket机制的模块设计 . 27 4.5 文件传输模块 . 28 III 理工大学学士学位论文 4.6本章小结 . 29 5 对程序进行调试与测试,并对结果进行分析 . 30 5.1 SOCKET通信的应用 . 30 5.2聊天服务器端 . 30 5. 3聊天客户端 . 32 5.4聊天系统的运行界面 . 33 结论 . 34 具体工作如下 . 34 参考文献 . 35 致谢 . 37 附录A英语原文 . 38 附录B汉语翻译 . 53 IV 理工大学学士学位论文 1绪 论 即时通信(Instant Messaging)软件是我国目前上网用户使用率最高的软件之一,即时通信系统(Instant Messaging System)可使人们在网上识别在线用户并与之实时交流。 目前,即时通信和电话、传真一样,已经成为企业员工商务沟通中广泛使用的交流工具,但个人即时通信软件在提高了沟通效率的同时也带来了一些难以管理的问题,如安全性问题、用户伸缩性问题等。如何使即时通信真正为企业服务,发挥其长处,并对其有效管理,已经成为研究的一个新课题。为此论文研究开发了企业级即时通信系统,此系统具备个人即时通信系统的功能,是一款可管理、可控制的企业级即时通信系统。 通过对国内外现有的即时通信软件详细地分析研究,提出了不同的即时通信模型,构建了适合于企业的即时通信系统,并通过实践验证了其具有很好的可行性与适用性。 1.1 课题背景 企事业的信息化发展,越来越需要不同系统协同工作,这就要求通过网络进行即时通信。现在企事业单位采用电话和电子邮件通信手段,虽然起了很大的沟通作用,但还是无法实现即时通信。还有些单位采用市面上流行的即时通信软件,比如ICQ、腾讯QQ、EMS等软件,但这些软件一般针对个人通信,属于公共服务软件的一种,处于开放网络环境下,聊天对象与聊天内容不可控制,上班时使用EMS、QQ可能会降低工作效率。EMS、QQ必须登录Internet才能使用,因而它们在为企事业或机构用户提供协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率和信息安全的隐患,所以并不太适合企(事)业内部的通信。还有的就是使用在本地局域网内即时传送消息和文件的小工具比如WinpopupX,它没有服务器端,通过在线列表和操作系统的网上邻居获取在线用户或以网上邻居中的计算机为对象进行通信,没有安全性也不便于企业管理。在这种情况下,有必要自主开发企事业内部的即时通信软件1。 1.2 研究现状 目前,信息产业在我国发展很快,已取得了一些成就。国家研究院对中国信息化调1 理工大学学士学位论文 查结果显示,“实时企业”这一概念被受访者认为是中国信息化最有应用前景的技术,认同率高达60%2,显示了即时通信软件在国内市场强劲的发展势头。即时通信软件在中国市场迅猛增长,各路厂商们正在纷纷推出自己的产品,能满足企业需求的还是比较少。而且目前的即时通信系统大多存在以下问题: 1标准化 目前即时通信的发展存在的最突出问题就是相关通信协议和标准不统一,各个即时通信软件采用不同的语言和协议标准而无法相互通信3。由于各大即时通信厂家考虑自身的商业利益,到目前为止还没有完全制定统一标准的通信协议。但作为一种基于IP技术的通信基础软件,即时通信最终成为互通互联、开放式的在线通信工具肯定是大势所趋。即时通信已经成为语音及文本的在线实时通信的主要技术,它必将成为未来移动商务、在线协作及Internet应用的核心,同时也将继承IP技术的开放风格,扮演比电子邮件更为重要的角色。 2安全性 在即时通信系统的发展过程中,如何保障系统安全、为用户提供的可靠服务同样重要。一个即时通信系统可能会保存大量用户的个人信息,如何保证这些信息的安全将是一个长期课题4。所以,建立统一、完善的安全体系也是未来发展的一个主要趋势。 3伸缩性 即时通信从支持几十个个人用户,到支持上百万的个人用户同时在线,这需要一个非常好的可伸缩性,如何建立一个好的可伸缩的体系结构支持高并发量的用户群体也是即时通信软件提供商要面临的问题。 1.3 研究意义 随着网络技术的发展,即时通信正在成为在线活动中不可或缺的业务。由于即时通信服务是一种公共服务,处于开放网络环境下,因而它为企业或机构用户提供协作支持的同时,也带来了来自公众网络的干扰,存在影响工作效率甚至信息安全的隐患。从个人即时通信向企业即时通信的演化,是目前即时通信领域的研究热点5,基于Socket的即时通信技术的出现则解决了这一问题,其主要作用包括以下几个方面: 1应用了目前最为流行的即时通信技术,使员工之间快速、便捷的交流。将大部分工作由手工处理转变为计算机处理,减少了人工错误和通信成本,提高了工作人员的工2 理工大学学士学位论文 作效率。 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 论文结构 论文共分六章。 3 理工大学学士学位论文 第一章为绪论,介绍了本文的研究背景,提出了实现即时通信的关键技术,并阐述了这些技术在国内外的研究现状以及开发此通信软件的必要性与可行性,进而提出了本文的研究方向,即设计一个企业即时通信系统。 第二章对系统应用的相关技术进行描述,主要描述实现系统所需的通信原理、网络编程基础以及一些技术方面的基本概念与基本思想。 第三章是系统总体设计,介绍了软件的整体(服务器和客户机)设计思路和概要设计,从总体上介绍软件的设计要求、工作流程以及各个功能模块,对系统中的关键技术进行阐述。 第四章对实现Socket通信的各个模块进行了研究与分析。 第五章是系统的测试与结果分析,为了达到可靠性和可用性,对软件进行了功能测试。 第六章也是全文的最后一章,对全文所开展的工作进行了总结。 1.6 本章小结 本章首先介绍了该课题的课题背景,初步认识该系统,了解了研究该系统的重要性。接着介绍了国内外研究现状以及研究意义,了解了该系统在当今社会上的定位以便于在前人研究基础上能有所创新。接着介绍了研究内容,明确了该系统所研究的方向和内容。最后对整个论文的组织结构进行了描述,使参阅者对论文有大致了解。 4 理工大学学士学位论文 2 Socket相关技术研究 企业即时通信系统是在客户端服务器程序设计基础上按照软件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现。本章主要研究主流的即时通信模型、网络通信技术、程序设计等。 2.1 主流即时通信模型 当代主流的即时通信模型主要有P2P模型与C/S模型,两种软件各有利弊,许多计算公司把P2P和C/S一样的看重,经常把两者结合在一起使用。 2.1.1 P2P模型 P2P(Peer to Peer,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等6。相对于C/S模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。P2P的最大特点就是用户之间直接共享资源,使得PC不再是被动的客户端,而成为具有服务器和客户端双重特征的设备,当然P2P也有许多不足之处。首先P2P缺乏管理机制,管理者再也无法对其用户进行必要的管理,不像在C/S模式中只需在中心点进行管理,所以P2P模型的网络资源往往并不可靠6。其次P2P网络中数据的安全性难以保证,P2P模型如图2.1所示。 5 理工大学学士学位论文 图2.1 P2P模型图 2.1.2 C/S模型 C/S(Client/Server,客户/服务器)模型,简称C/S架构。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和服务器上,降低系统通信开销。在这种结构中,服务器处于一个中心地位。服务器是一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在服务器上。服务器始终处于工作状态,一般同时为多个客户提供服务,它被动地接受客户连接,根据客户的请求提供相应的服务。这就造成了服务器设计的复杂性。特别是像即时通信服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通信服务器是数据中心,需要同时应对众多客户的请求7。 C/S通信主要特点是客户端之间的通信都要通过服务器的转发,会造成服务太集中,在C/S模型中,当网络增大时,服务器的压力就越大。当增加一个客户,服务器的性能就会弱化,甚至会而使服务器失效而导致整个网络的瘫痪等,其优点是便于集中管理,像这种结构一般用在用户数量少的局域网内。C/S模型图如图2.2所示。 6 理工大学学士学位论文 图2.2 C/S模型图 2.2 即时通信主流的通信协议 传输控制协议TCP和用户数据报UDP是TCP/IP协议族的两个主要的传输协议,这两个协议都使用IP作为网络层协议8。在网络通信传输机制中,TCP是属于“面向连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之间建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。这种方法需要的网络开销较大,但却提供一种可靠的传输层服务。UDP是属于“面向无连接,不可靠传输”的类型,该协议只负责接收和传送上层协议传递的消息,UDP本身不做任何检测、修改与应答,上层协议需要自己处理这些事务。TCP、UDP最大的区别在于为应用协议提供不同的服务。 2.2.1 UDP协议 用户数据报协议UDP是建立在网际协议之上的,提供面向无连接、不可靠的数据报传输服务的传输协议9。UDP传输不像TCP传输一样需要预先建立一条连接,UDP把数据发送出去但不进行差错控制和流量控制,报文可能丢失、重复或者失序,而发送方却得不到通知的,数据也不会被重传。因此,UDP提供的是一种不可靠的应用数据传输服务。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据广播到网络上,7 理工大学学士学位论文 任何欲接收者都可接收到数据。其优点在于: 1使用UDP时,每个数据中都给出了完整的地址信息,发送数据之前不需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延。 2不使用拥塞控制,也不保证可靠传输,因此主机不需要维持具有许多参数的、复杂的连接状态表。 3UDP不进行流量控制,没有序列与确认、没有超时重发等机制,因此它处理和传输数据的速度快。 作为一种面向无连接的传输协议,基于UDP的应用程序在高可靠性、地延迟的网络中运动的很好,但是在通信子网的服务质量相对很低下的Internet上,它可能就无法运行了,因为数据报的丢失过于频繁。原因就在于UDP的不可靠性,而这些应用程序自身可能有没有提供可靠性保障。因此,基于UDP的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障,例如遗失数据报重重传、失序的数据报重新组合等。 2.2.2 TCP协议 TCP是一个面向连接的、可靠的传输层协议,协议提供的服务包括面向连接、双向、有序并且无重复的数据流传送、有效的流量控制、全双工操作和多路复用。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比较高的数据传输9。 因此即时通信系统的消息传输一般是建立在TCP协议基础之上的,客户与服务器之间都是通过TCP传输数据,服务器端口一般固定。由于TCP是面向连接的,但是在国内目前IP地址短缺,很多时候采用通过局域网连入Internet的网络状况,TCP的对等连接显然不能满足所有的要求,而且目前由于黑客软件和病毒的泛滥,大部分上网的个人计算机都配置了防火墙在很大程度上阻止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的话采用通过服务器中转的方式。 2.3 Socket技术 随着Internet的迅猛发展,网络通信应用程序的开发成为一个研究热点。Windows环境下进行通信程序设计的最基本方法是采用Socket技术实现10。 应用程序调用Socket的API(应用程序编程接口)实现相互之间的通信,又利用下层的8 理工大学学士学位论文 网络通信协议功能和操作系统调用实现实际的通信工作。Socket工作原理如图2.3所示: 应用程序A 应用程序B 网络接口,例如,Windows Socket 网络服务协议接口,例如 TCP/IP 操作系统,例如Windows 物理通信介质 图2.3 Socket工作原理图 Sockets也称为套接字,是一种网络编程接口,它是通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字,它们是流式套接字(Stream Sockets) 和数据报套接字(Datagram Sockets),这两种套接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不同的11。 2.4 多线程技术 操作系统是一个多任务的系统,支持多任务调度和处理,基于该功能所提供的多任务空间,程序员可以完全控制应用程序中每一个片段的运行,从而编写高效率的应用程序。所谓多任务通常包括这样两大类:单进程和多线程。进程是指在系统中正在运行的一个应用程序,当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源13;而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,线程是系统分配处理器时资源的基本单元,或者进程之内独立执行的一个单元,对于操作系统而言,其调度单元是线程14。每个线程都有自己的专有寄存器,但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指,程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允9 理工大学学士学位论文 许单个程序创建多个并行执行的线程来完成各自的任务,也就是多进程。多线程的应用可以大大地提高CPU的利用率,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待。 在即时通信系统开发中,主要用多线程来解决多用户同时与服务器进行通信以及客户端同时与其它多个客户端通信的问题。其基本设计思路是:服务器端启动后,进入侦听模式,如果有客户端连接的信号收到,服务器就自己新建一个Socket,然后新建一个线程用来和需要连接的客户端通信,同时,为了能够使windows窗口响应,还要发送事件给父窗口,接着自己继续侦听。新建的线程执行完毕,自动关闭连接,释放资源。这样,就实现了Socket的连接和多线程通信。 2.5 JDBC技术 本系统采用的是客户/服务器三层结构,即客户端、服务器以及数据库。我们所用到的访问数据库的技术是JDBC。JDBC即活动的数据对象,是Microsoft开发的用于访问数据库的。其显著特点是快速、简单。 JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型

    注意事项

    本文(基于SOCKET的即时通信系统设计与实现.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开