资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划qq启航版报告TencentQQ协议分析报告1TencentQQ软件简介QQ是深圳市腾讯计算机系统有限公司开发的一款基于Internet的即时通信软件。腾讯QQ支持在线聊天、视频电话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能。并可与移动通讯终端等多种通讯方式相连。1999年2月,腾讯正式推出第一个即时通信软件“腾讯QQ”,QQ在线用户由1999年的2人到现在已经发展到上亿用户了,在线人数超过一亿。是目前使用最广泛的聊天软件之一。2TencentQQ功能与使用协议推断TencentQQ的是一个即时通讯软件,综合性的即时通讯软件,包括P2P,HTTP等协议使用,主要提供点对点信息传输,下载、上传,在线影音等功能。本文主要针对QQ的文件传输协议做分析诊断。系统主界面传输文件3腾讯QQ协议详细分析连接过程Sniffer预判连接建立过程将会采用TCP协议,建立连接,传输数据。Sniffer过滤器设置Sniffer结果Sniffer结果分析抓包住到了TCP连接建立过程,还有HTTP建立数据包,本次抓包主要是TCP数据包,与腾讯服务器建立连接后,通过HTTP下载用户数据。功能文件传输Sniffer预判文件传输功能,采用了P2P模式,会有大量的UDP数据包传输,数据建立过程,通过TCP协议建立,抓包将会抓到大量的UDP数据包。第2章系统分析及开发技术说明节需求分析节功能需求分析图功能需求说明图用户端的基本聊天信息发送,这些基本聊天信息包括文本和图片。文本和图片聊天是聊天软件最基础的功能。用户通过输入IP来查找用户,并申请加为好友,在对方同意加为好友后,在线用户列表就会更新用户,把加入的用户添加到用户列表中。这样,两个用户之前就可以实现通信了。在信息传输中,预计利用TCP/IP协议中的UDP协议,这是面向无连接的协议,但发送速度快,用于聊天信息传输用适合。用户端的音视频数据传输,这是本设计的扩展功能。用户可以正常通信后,就可以选择是否进行语音或视频聊天。本功能也将采用UDP协议,UDP协议可能会丢失数据,但对于音视频聊天需要传输大量数据但又允许丢失少量数据的情况下,UDP的快速发送信息的特点就得到很好的体现。用户端文件传输的功能,用户之间可以断点续传文件。在传文件之前,首先创建一信息文件,记录文件传送的一些信息,并根据传输的数据量实时修改。如果没有传完,下次就可以继续打开这个信息文件,接着上次的进度传输。因为文件传输入要求数据不能出错,因此此模块采用TCP协议。用户端之间白板和共享屏幕的功能,这个功能有些类似视频的传输,因些并不是很难,可以在视频传输的功能上加以修改。用户之间后台的连接,每个用户隔指定时间会向用户列表中的每一用户发送消息,查看用户是否在线,如果不在线,就更新用户列表,删除用户。节数据需求分析客户端之间聊天信息。在控件上显示时格式化,更易于用户的查看自己发送或接收到的信息。在线用户列表信息。服务器端存放在适当的空间中,在发送给客户端时,对信息列表进行格式化,便于客户端提取信息。客户端向服务器端发送的确认在线信息。包括客户端刚刚启动时的初始化信息和在使用过程中的确认在线信息。其它程序内部可能需要设计的数据结构体。节性能需求分析可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。宜操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面,使用户能很容易看懂并使用。开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。节运行需求分析用户界面程序较小,启动速度快,无启动界面。在本地局域网中使用,所以无需进行用户登录,无需认证界面,启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。故障处理在遇到可预知的故障与情况时,能提示用户并自动退出;在遇到不可预知的故障时能安全退出。节Winsock网络编程WindowsSockets是从BerkeleySockets扩展而来的,其在继承BerkeleySockets的基础上,又进行了新的扩充。这些扩充主要是提供了一些异步函数,并增加了符合WINDOWS消息驱动特性的网络事件异步选择机制5。WindowsSockets由两部分组成:开发组件和运行组件。开发组件:WindowsSockets实现文档、应用程序接口(API)引入库和一些头文件。运行组件:WindowsSockets应用程序接口的动态链接库()。节Socket套接字最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口,随着UNIX操作系统的广泛使用,套接字成为当前最流行的网络通信应用程序接口之一7。90年代初,由SunMicrosystems,JSBCorporation,FTPsoftware,Microdyne和Microsoft等几家公司共同制定了一套标准,即WindowsSockets规范。WindowsSocketsAPI是MicrosoftWindows的网络程序设计接口,它在继承了BerkeleySockets主要特征的基础上,又对它进行了重要扩充。这些扩充主要是提供了一些异步函数,并增加了符合Windows消息驱动特性的网络事件异步选择机制。这些扩充有利于应用程序开发者编制符合Windows编程模式的软件,它使在Windows下开发高性能的网络通信程序成为可能。Socket实际上是指一个通信端点,借助于它,用户所开发的Socket应用程序,可以通过网络与其它Socket应用程序进行通信。近年来,随着计算机网络与Windows95的流行,许多用户所开发的应用程序需要实现网络间的数据通信。节开发WindowsSockets网络通信程序的软、硬件环境所采用的操作系统软件可以是Windows95,XX,XP,也可以是WindowsNT,因为它们都支持WindowsSocketsAPI,在以下的介绍中,我们将以在WindowsXP环境下的开发为例。所采用的编程语言一般可选目前较流行使用的可视化和采用面向对象技术的MicrosoftVisualC+。VisualC+可在WindowsXP或WindowsNT环境下运行,其开发系统增加了全面集成的基于Windows的开发工具以及一个基于传统C/C+开发过程的“可视化”用户界面驱动模型。VisualC+中的Microsoft基类一起,都是提供网络应用程序间相互通信的设施。节CSocket类编程模型使用CSocket对象涉及CArchive和CSocketFile类对象。以下介绍的针对字节流型套接字的操作步骤中,只有第三步对于客户方和服务方操作是不同的,其他步骤都相同13。构造一个CSocket对象。使用这个对象的Create()成员函数产生一个socket对象。在客户方程序中,除非需要数据报套接字,Create()函数一般情况下应该使用默认参数。而对于服务方程序,必须在调用Create时指定一个端口。需要注意的是,Carchive类对象不能与数据报套接字一起工作,因此对于数据报套接字,CAsyncSocket和CSocket的使用方法是一样的。如果是客户方套接字,则调用CAsyncSocketConnect()函数与服务方套接字连接;如果是服务方套接字,则调用CAsyncSocketListen()开始监听来自客户方的连接请求,收到连接请求后,调用CAsyncSocketAccept()函数接受请求,建立连接。请注意Accept()成员函数需要一个新的并且为空的CSocket对象作为它的参数,解释同上。产生一个CSocketFile对象,并把它与CSocket对象关联起来。为接收和发送数据各产生一个CArchive对象,把它们与CSocketFile对象关联起来。切记CArchive是不能和数据报套接字一起工作的。使用CArchive对象的Read()、Write()等函数在客户与服务方传送数据。通讯完毕后,销毁CArchive、CSocketFile和CSocket对象。节用进行WindowsSockets程序开发的技术要点同常规编程一样,无论服务器方还是客户方应用程序都要进行所谓的初始化处理,这部分工作仍可采用消息驱动机制来先期完成。一般情况下,网络通信程序是某应用程序中的一模块。在单独调试网络通信程序时,要尽量与采用该通信模块的其它应用程序开发者约定好,统一采用一种界面形式,即单文档界面SDI、多文档界面MDI和基于对话框界面中的一种,尽管这并非必须,但可使通信模块在移植到所需的应用程序时省时省力,因为VisualC+这种可视化语言在给我们提供方便的同时,也给我们带来某些不便,譬如所形成的项目文件中的许多相关文件与所采用的界面形式密切联系,许多消息驱动功能,随所采用的界面形式不同而各异。当然,也可将通信模块函数化,并形成一个动态连接库文件(DLL文件),供主程序调用。以通信程序作为其中一个模块的应用程序往往不是在等待数据发送或接收完之后再做其它工作,因而在主程序中要采用多线程技术。即将数据的发或收,放在一个具有一定优先级的辅助线程中,在数据发或收期间,主程序仍可进行其它工作,譬如利用上一个周期收到的数据绘制曲线。VisualC+中的MFC提供了许多有关启动线程、管理线程、同步化线程、终止线程等功能函数14。在许多情况下,要求通信模块应实时地收、发数据。譬如调用之的主程序以秒为一周期,在这段时间内,要进行如下工作:接收数据,利用收到的数据进行运算,将运算结果发送到其它计算机节点,周而复始。我们在充分利用WindowsSockets的基于消息的网络事件异步选择机制,用消息来驱动数据的发送和接收的基广东石油化工学院基于java语言的课题设计报告院系:计算机与电子信息班级:姓名:赖文光学号:课程设计概述设计目的通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析,解决问题的能力。具体如下:1,学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析和设计,编码和测试方面的知识;2,熟悉软件开发工具的应用;3,进一步加强和提高软件工程文档的编写能力;4,培养协作能力和团队精神。设计任务为尽量增进内部员工之间的交流,而且希望这种交流能够省时、方便、充分。目前人们大量使用计算机管理日常工作,更不用说现在的高科技企业了,计算机成了工作的必需装备,局域网和互联网应用已经普及,为充分利用网络这个载体来互相交流提供了条件,如E-mail、公司内部论坛等等。本软件为人们之间的交流又提供了一个新的手段,它是一个可以自定
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号