ImageVerifierCode 换一换
格式:DOC , 页数:64 ,大小:1.69MB ,
资源ID:5863276      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5863276.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多人网络视频会议系统的设计与实现.doc)为本站会员(wo7103235)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

多人网络视频会议系统的设计与实现.doc

1、本 科 毕 业 论 文多人网络视频会议系统的设计与实现Multiuser Video Net Meeting System网络即时通信、视频处理及辅助功能模块姓 名: 学 号: 学 院:软件学院系:软件工程专 业:软件工程年 级: 指导教师: 二XX 年 X 月摘 要生活中的会议存在很多的弊端,总是需要事先预定时间、地点,统一开会人员及布置会场、记录、主持等,相距遥远的参会者不能及时或者无法参加会议造成会议无法正常进行,会议所要解决的问题或是要制定的方案、决策常常由于种种类似的因素而耽搁。准备会议、举行会议的成本高,效率低。所以步入信息社会的人们趋向于选择更加便捷的方式参与会议。在这种情况下,

2、网络视频会议应运而生。多人网络视频会议(Multiuser Video Net Meeting)系统旨在降低会议成本,让人们能够快捷、便利、经济的沟通。它是一种能把声音、图像、文本等多种信息从一个地方传送到另一个地方的通信系统,它解决了以上的问题,免去了很多会议开支,缩短了解决问题的周期,使客观因素的影响大大减小。本文在基于对现有网络即时通信产品(如:QQ、MSN、Skype 等)与视频会议系统的分析与比较下,对一个在现有即时通信软件的基础上发展适于多人网络视频会议功能的系统的基本设计与实现进行了探讨。从技术原理的介绍到技术在系统中具体的应用两个层次,重点对系统的总体框架设计;局域网即时通信与

3、大数据传输;VC+ 媒体框架(VFW:VideoFor Windows )与视频模块的设计与开发;多线程技术;视频数据编解码技术;C+ 语言及其开发环境等部分进行了详细解析,并根据视频会议系统的基本结构和其他一些相关技术,说明了一个基于 VFW 的小型视频会议系统的设计和实现。最后对多人网络视频会议系统的功能进行说明与展示,并对系统的优缺点进行了总结,提出了下一步的研究与发展方向。关键词: 视频会议;VFW;即时通讯IAbstractIn the daily life, traditionary conference has many abuses, such as pre-arranging

4、 the schedule , place , people , preparing the hall , recorder , masterand so on. Attendees far from the place holding the conference maybe late for or absence the conference, which makes the conference cannot go on successfully. The goal of a meeting, resolving problems or making plans and decision

5、s , will beusually delayed by such objective factors. Its high cost but low efficiency toprepare and hold a meeting. People in the information society prefer to a more convenient way to participate in a meeting. Under the circumstances, The Video Net Meeting System come into existence as the situati

6、on requires.The Multiuser Video Net Meeting System aims at reducing meeting cost andmaking communication faster, more convenient and cheaper. The Video Net Meeting System is a communication system that transmits many kinds of signalssuch as video, audio, text and so on from one place to another. It

7、is created to save money and time because of meetings and helps reducing the influences of objective factors.This thesis introduces the basic concepts of Multiuser Video Net MeetingSystem bases on comparison and analysis of current Instant Messengers (such as QQ、MSN 、 Skype) and Video Net Meeting Sy

8、stem.This thesis introduces the system from two arrangements: technology theory and application of technology in this system. Include overall design of the system; LAN communication and large data transfer; VFW (Video For Windows) and video programming; Multi-threading; Video encoding and decoding;

9、C+ language and MFC(Microsoft Foundation Class) ,According to the basic structure of video conference and some other technology ,it describes the design and implementation of a mini-video net meeting system.In the end, this thesis introduces and demonstrates the systems functions, concludes the meri

10、ts and drawbacks and raises the further studies.Key words: Video Net Meeting; VFW; Instant CommunicationII目 录第一章 绪论 11.1 背景介绍 11.2 网络视频会议系统应用现状 21.3 本论文主要工作 21.4 论文组织结构 .3第二章 现有网络视频通信产品分析 52.1 现有的网络视频通信产品分析 52.2 多人网络视频会议系统的意义 82.3 本章小结 8第三章 多人网络视频会议系统的总体设计 .93.1 多人网络视频会议系统框架设计 93.2 模块划分与任务 103.3 关系结

11、构解析 .113.4 本章小结 11第四章 多人网络视频会议系统的局域网通信模块 134.1 TCP/IP 协议介绍 134.2 通信连接的建立 144.3 数据的封装 .164.4 消息数据的读取 204.5 服务器消息中转方案分析 .214.6 音视频数据的传输 224.7 通信模块中的线程 254.8 本章小结 27第五章 多人网络视频会议系统的视频模块 .295.1 视频开发技术比较与介绍 .295.2 视频模块开发详解 30III5.3 视频编解码 .345.4 本章小结 36第六章 多人网络视频会议系统的功能及展示 .376.1 开发环境 376.2 系统功能介绍 .376.3 系

12、统运行展示 .376.4 本章小结 48第七章 总结与展望 .497.1 总结 497.2 展望 49致谢 51参考文献 .52附录 54IVContentsChapter 1 Introduction 11.1 Background .11.2 Current Situdation .21.3 Contents and Tasks 21.4 Architecture of Thesis 3Chapter 2 Current Market Products Comparison52.1 Current Market Products Analysis.52.2 The Meaning of T

13、he Multiuser Video Net Meeting System .82.3 Summary .8Chapter 3 System Architecture of The System93.1 System Architecture .93.2 Modules and Task 103.3 System Relational Structure113.4 Summary.11Chapter 4 Internetwork Communication Module.134.1 Introduction of TCP/IP Protocol 134.2 The Establishment

14、of Communication Links 144.3 Data Encapsulation 164.4 Message Data Extraction.204.5 Message Forward in Server.214.6 Audio and Video Data Transfer224.7 Multithreading in The Module .254.8 Summary.27Chapter 5 Design and Implementation of Video Module .295.1 Introduction and Comparison of Video Technol

15、ogy 295.2 Detail Development of The Video Module .30V5.3 Video Encoding and Decoding 345.4 Summary.36Chapter 6 Functions and Exhibition.376.1 Development Environment376.2 Introduction of System Functions.376.3 Exhibition of System Functions 376.4 Summary.48Chapter 7 Conclusions and Future Work 497.1

16、 Conclusions .497.2 Future Work .49Acknowledgments.51References52Appendix54VI第一章 绪论第一章 绪论1.1 背景介绍随着计算机和网络的进一步普及,人们对于计算机和网络的依赖不断增加。人们通过计算机和网络做许多的工作,包括人际之间的交流也在其帮助下变得更加便捷。即时通讯(Instant Messaging,简称 IM)软件的出现,更是给人与人之间的交流带来了巨变。即时通讯软件是通过即时通信技术来实现在线聊天、交流的软件,是一种终端服务,允许两个或多人使用网络即时地传送文字信息、语音与视频交流。最早的即时通讯软件是 19

17、96 年,由四名以色列大学生开发的 ICQ (I Seek You),在这之后即时通讯软件如雨后春笋般涌现,现在比较流行的即时通讯软件有 MSNMessenger,QQ,Skype 等等。即时通讯软件提供的语音视讯功能打破了地域的限制,使人们能够非常方便地取得即时的联系,于是受到了越来越多人的青睐,互联网时代的人们在日常生活中已经对这些即时通讯软件产生了非常的依赖。日常生活中,人们常常为会议奔忙。筹备会议,举行会议,参加会议都会花费相当大的人力和财力。信息社会里时间就是生命,人们期待有更加便捷的沟通方式来取代现有的会议方式,对现有即时通讯软件产生了依赖的人们,希望会议可以通过类似即时通讯软件的

18、方式来进行,在这种情况下,像 QQ,MSN 都提供了多人聊天甚至多人语音的功能,Skype 更是一出现就明确地提出了“会议”这一概念。网络视频会议开始进入人们的视野。视频会议系统是通过视、音频压缩和多媒体通信技术实现的。支持人们远距离进行实时信息交流与共享,开展协同工作的应用系统。视频会议通过传送会议成员的视、音频信息,极大地方便了协作成员之间真实、直观的交流。同时,视频会议还利用多媒体支持协同工作中各种信息的处理,如数据共享等,从而可营造一个多人共享的工作空间。随着多媒体通信技术的高速发展,实时多媒体通信业务也开始广泛普及。视频会议是实时多媒体信息传输的一种重要应用形式,在商务、医疗和教育等

19、各个领域都具有广阔的应用前景。1多人网络视频会议系统的设计与实现1.2 网络视频会议系统应用现状经过近几年的发展和市场推动,视频会议系统的应用主要在:远程分支机构会议、商务会议、远程培训、远程销售与支持、远程教育、远程医疗等方面。现说明如下:远程商务会议应用视讯业务最普遍最广泛的应用,适用于一些大型集团公司、外商独资企业等在商务活动猛增的情况下,逐步利用视讯会议方式组织部分商务谈判、业务管理和远程公司内部会议。远程教育应用利用视讯会议开展教学活动,使更多、更大范围的学生能够聆听优秀教师的教学,在美国、欧洲较为流行,许多大学建有其远程教育网络,数百万学生通过交互视讯会议系统接受教育。另外,远程培

20、训在各大企业也越来越受到关注。远程医疗应用利用视讯业务实现中心医院与基层医院就疑难病症进行会诊、指导治疗与护理、对基层医务人员的医学培训等等。高质量的视讯业务使医生、护士在不同地方同时协同工作成为可能。远程医疗对于一些中小医院有着重要的意义,可以得到大医院的医学专家的咨询和会诊。项目协同工作应用也是进行远程项目管理的非常好的工具,突出特点是资源共享。项目组的成员能进行远程协作,使地理上分开的工作组以更高的速率和灵活性以电子方式组织起来。许多美国大公司与其分公司间通过数字链路,利用桌面视讯会议,实现整个公司的办公自动化,相关人员可以在屏幕上共同修改文本、图表。政府行政会议应用我国幅员辽阔,各级政

21、府会议频繁,视讯会议系统是一种现代化召开会议的多快好省的方法,它可使上级文件内容即时下达,使下级与会者面对面地讨论和深刻领会上级精神,使上级指示及时得到贯彻执行。1.3 主要任务由上一节我们知道网络视频会议系统的应用前景相当广阔,多人网络视频会议(Multiuser Net Video Meeting)系统采用 C/S 架构,按照技术相关性划分为网络通信模块、视频模块、音频模块、数据库模块、界面模块和其他辅助性功能模2第一章 绪论块。本论文由两人分模块进行开发,系统开发完成包括四个阶段:需求分析、系统设计、编码及系统测试。需求分析和系统测试由两人共同完成。本文重点针对即时通信模块、视频开发模块

22、、视频编解码模块以及辅助模块四个模块进行详细的研究与设计,并且实现了模拟系统,涉及的技术主要包括 TCP 通信、UDP 传输、 Winsock 编程技术、VFW 视频编程(视频采集,视频显示)、 H.263 编解码及应用、文件保存等技术。系统其它模块由其他人员完成。1.4 本论文的组织结构第一章 绪论部分,主要介绍了网络视频会议研究的课题背景、应用现状,最后对本论文的组织结构进行了说明。第二章 网络视频通信系统分析与比较,对现有的网络视频通信系统进行了分析与比较,主要是 QQ、 MSN、Skype 三种比较流行的即时通信软件做了简要介绍与优缺点分析。从而阐述了开发本项目多人网络视频会议系统的意

23、义之所在。第三章 多人网络视频会议系统的总体设计,介绍了多人网络视频会议系统的总体设计,包括框架设计思想、部署关系结构的解析、模块划分的原则与任务等内容。第四章 通信模块的设计与实现,包括八个部分的内容,TCP/IP 协议的基本知识;系统 TCP 连接的建立与服务器对通信连接的管理;应用层数据报的封装;应用层数据报内容的读取;系统中控制消息与文本消息通信的过程解析;音视频数据的通信传输说明以及多线程技术与多人网络视频会议系统通信模块的结合使用等内容。本章与第五章对视频模块的开发是本论文主要阐述的关键技术。第五章 视频模块的设计与实现,主要对 windows 下视频编程的知识进行简要介绍和总结,

24、对多人网络视频会议系统所采用的 VFW (Video ForWindows) 软件开发包进行详细的介绍,对项目中采用的 VFW 的 API进行了详细的介绍,讲解其在程序中的具体应用。对视频模块部分的开发做了整体性的讲解,对技术实现过程中的难点与新发现进行了总结。第六章 系统功能及展示。简要介绍了系统开发的环境,对多人网络视频会议3多人网络视频会议系统的设计与实现系统的基本功能结合界面演示的方式进行了详细的叙述,系统介绍了多人网络视频会议系统的基本功能与操作流程。第七章 总结与展望。对在项目实施过程中语论文的撰写过程中的所学与经验进行了详细的总结,对项目系统的进一步发展和技术运用的拓展空间作了比

25、较详细的设想。4第二章 现有网络视频通信产品分析第二章 现有网络视频通信产品分析现在流行的很多即时通讯软件成了人们日常生活不可或缺的部分,如QQ、MSN 、 Skype 等等,本章主要对这些产品做简要的介绍与功能分析。并由此引申出开发多人网络视频会议系统的意义。2.1 现有的网络视频通信产品分析现在流行的网络即时通信软件主要有腾讯 QQ、微软 MSN、网易 POPO、新浪 UC、雅虎通、ICQ、Skype。 我们选取最流行,应用最广的 QQ、MSN和 Skype 进行分析与比较。(1) QQ。据腾讯 QQ 官方消息, 2005 年,QQ 在国内已拥有 2.4 亿多的注册用户,7 000 多万活

26、跃用户,同时在线人数 700 万以上。目前,腾讯QQ 已成为国内用户最多的个人即时通讯工具,占据着国内约 74%以上的市场份额。除了支持在线消息收发,即时传送语音视频和文件,并且整合移动通讯手段,可通过客户端发送信息给手机用户。目前 QQ 已开发出穿越防火墙、动态表情、给好友放录像、捕捉荧屏、共享文件夹、提供聊天场景、聊天时可显示图片等强大的使用功能。另外,QQ 还增加了 QQ 群、QQ 秀、QQ 宠物、QQ 游戏等娱乐功能。由于 QQ 良好的开放功能、休闲娱乐服务,使其拥有了庞大的用户群,在近几年内突飞猛进,牢牢占据着国内即时通讯霸主地位。QQ 之所以能够取得成功,原因在于 QQ 和其同时代

27、的在线即时通讯软件相比,它在界面设计上十分合理,用户操作简单。QQ 的不断发展给用户提供了越来越多的功能,在即时通讯方面提供了点对点的视频、语音聊天以及多人的语音聊天,但是对多人视频的支持还没有出现,忽视了市场对多人网络视频的功能需求。另外 QQ 的安全性能不高,在商用领域,由于员工使用 QQ 交流的不可控性对工作效率有着极大的“伤害” ,故企业对 QQ 的态度多数都极为 “恶劣”,大多采取了绝对封杀的措施。(2) MSN Messenger。MSN 是微软公司开发的即时聊天工具,由于微软5多人网络视频会议系统的设计与实现产品用户众多,操作简单,运行稳定,且与 Windows XP 进行了无缝

28、结合, 使得 MSN 的普及速度非常快,现在已经是世界主流的聊天工具,在国内即时通讯软件中稳占了第二的位置。MSN Messenger,作为全球四大即时通讯软件之一,也提供了很多即时通讯的功能,但也仅限于点对点的音频、视频、文字信息通信和多人的语音即时通讯。MSN 消息协议由一系列的在客户端和服务器之间传送的命令组成。例如,你的一个好友下线了,服务器就会发送一条消息:FLN 到你的客户端。你的客户端就会将这个好友标记为下线状态。FLN 就是一个在服务器和客户端传送的命令,它带有参数 ,这个参数是客户端的 Email 地址,也是用户名。MSN 消息协议就靠在客户端和服务器之间传送这样一些带参

29、数的命令来交流信息。MSN 消息协议建立在 TCP/IP 上,除了显示图片,自定义表情,文件传输与语音视频聊天是 p2p 外,其它都通过服务器来进行。MSN 采用 DSN(MSN Messenger 服务器分为三类:DispatchServer(DS) 、Notification Server(NS)、Switchboard Server(SB))服务器架构,实现了很好的负载均衡。MSN 支持手写功能,但与其他即时通讯软件最大的不同是不支持离线消息。同 QQ 一样,暂时还没有开发出支持多人视频的产品。没有提出网络会议的概念,并且针对这一概念进行功能上的完善。(3)Skype。Skype 是第一

30、个利用 P2P 技术进行语音通信的 VoIP 工具,能够提供较好的通话质量。Skype 能够透过防火墙进行无缝通信,安装使用也很 简单。Skype 的网络结构包含的节点有两种:客户端(ordinary node)和超级节点(super node,SN )。客户端必须链接到超级节点,并且在 Skype 的中央服务器登录。超级节点负责为其它客户端提供登录跳板及广播服务,有效地降低了服务器的负载。作为第一个明确提出“会议”这一概念的网络即时通讯软件,受到了广大用户的欢迎。Skype 是网络即时语音沟通工具。具备 IM 所需的其他功能,比如视频聊天、多人语音会议、多人聊天、传送文件、文字聊天等功能。但

31、是它主要通过提供免费全球性电话,使用户利用下一代同等网络软件进行无限制的高质量语音通话。主要致力发展的方向是电话会议、语音通讯,6第二章 现有网络视频通信产品分析对视频通讯的关注度不够,而且 Skype 将好友列表保存在本地,限制了它的移动性。综上所述,各现有流行即时网络通信软件比较分析如表 2-1 所示:表 2-1:现有主要流行即时网络通信软件比较分析总结IM 主要优点 存在缺点QQ (1) 界面简洁、美观,操作简单。 (1) 没有提供多人视频的功能。(2) 功能完备,功能种类繁多。 (2) 没有提出“会议” 的概念。(3) 摄像头好用,只要一方有就 (3) 安全性能不高。可以视频。 (4)

32、 广告很多。(4) 与移动通信进行了整合。 (5) 无法在其他语言系统上使用。MSN (1) DNS 三类服务器均衡负载。 (1) 没有提供多人视频的功能。(2) 操作简单,运行稳定。 (2) 没有提出“会议” 的概念。(3) 与 windows 无缝结合。 (3) 视频、语音质量差,功能不(4) 聊天好友比较简单,只有知 多。道 Email 的才能加为好友。 (4) 界面比较古板。Skype (1) 电话会议、语音通讯质量先 (1) 没有提供多人视频的功能。进,实现 PC 与电话的语音 (2) 好友列表放在客户端本地,通讯。 不能随账号移动。(2) 超级节点的设置使得网络 (3) 主要致力于

33、电话会议,对视架构最优化。 频会议的关注度不高。(3) 透过防火墙进行无缝通信。(4) 安装简单,使用方便。综上所述,现有的大多数即时通讯软件都没有开发多人网络视频会议的功能,并且对“会议” 这一概念也比较模糊。本项目致力于解决多人视频会议与即时通讯软件的整合。7多人网络视频会议系统的设计与实现2.2 多人网络视频会议系统的意义2.2.1 用户的需求从上一节的分析比较我们知道现有的网络视频会议系统已经存在,但是并没有与现有的即时通讯软件很好的结合,得不到广泛的普及;而现有的即时通讯软件提供了点对点的视频,多人的文字和语音聊天,但是对于多人的视频都未有涉及。所以人们对于一种与现有的即时通讯软件相

34、类似并尽量保留和集成各即时通讯软件优点但是又具有多人视频语音功能的网络视频会议系统的需求愈发强烈。2.2.2 多人网络视频会议系统的目的多人网络视频会议系统即是应对这一日益强烈的需求而出现的,它在基于现有的即时通讯软件功能的基础上添加了多人视频语音会议的功能;并且从上一节我们总结出,应该开发一种像 QQ 一样有着简洁的界面、简单的操作同时又避免像 Skype 一样将好友信息保存在本地的一种即时通信软件。这就是本项目开发的意义所在。相信多人网络视频会议系统的出现将会使得网络视频会议的使用更加普及,给日常生活带来全新的会议模式。2.3 本章小结本章分析了时下流行的即时通讯软件,并对这些软件的优点与

35、功能方面的不足做了简要总结。并由此引申出多人网络视频会议系统开发的意义。8第三章 多人网络视频会议系统的总体设计第三章 多人网络视频会议系统的总体设计多人网络视频会议系统是指两个或两个以上不同地方的个人或群体通过传输线路及多媒体设备, 将声音、影像及文件资料互传, 达到即时的互动沟通,从而完成会议目的的系统设备。视频会议系统是集通信、计算机技术、多媒体技术于一体的远程异地通信方式。以下对本系统的设计进行简要说明。3.1 多人网络视频会议系统框架设计在设计多人网络视频会议系统的时候,要充分考虑底层的端口通信、命令接受与发送、视音频的处理等相关的一系列环节。整体设计框架如图 3-1 所示:图 3-

36、1:多人网络视频会议系统整体框架图服务器作为数据交互的中心节点负责,客户端之间的数据交互,管理与客户端的通信连接。客户端从交流方式划分成实时音视频系统和数据交互系统两大部分。音视频系统主要完成多个用户在网络上的实时“会谈”交流; 数据交互系统包括:文字交谈、文件传输和应用程序共享等模块,用来完成决策成员们之间进一步的交流和协作。借鉴以前的成功案例, 在设计过程中笔者采用以下的思想和9多人网络视频会议系统的设计与实现方法:( 1) 采用 VFW (Video for windows) 编程,应用先进的编码、压缩技术,使音视频的采集、压缩、回放同硬件环境相脱离,使平台具有良好的可移植性和通用性。(

37、 2) 数据通信应用 TCP 协议,音视频通信采用 UDP 协议和组播技术, 利用 UDP 传输延时性较少的特点保证数据传输的可靠性和音、频通信的实时性,实现数据、音频、视频的实时多点通信,减少网络流量, 提高系统的整体性能。( 3) 使用不同 Socket 套端口,分别为音视频等模块设置一个传输套接字,这样在接收远端计算机传来的数据时, 无须进行数据格式的判断,从而提高系统回放数据的速度。3.2 模块划分与任务按照技术相关性划分为网络通信模块、视频模块、音频模块、编解码模块、数据库模块、界面模块和其他辅助性功能模块。表 3-1:多人网络视频会议系统的模块划分与任务序号 划分模块 模块主要技术

38、或功能 范围 论文任务1 界面模块 界面设计、美化 服务器、客户端2 网络通信模块 TCP、UDP、Winsock 编程等 服务器、客户端 3 视频模块 VFW、视频采集、视频显示 客户端 4 音频模块 VFW、音频采集、音频播放 客户端5 编解码模块 H.263 压缩算法与应用 客户端 6 数据库模块 MySQL、数据库设计与编程 服务器、客户端7 辅助功能模块 各消息的处理函数的实现、 服务器、客户端 文件保存功能等本论文以下章节主要介绍网络通信技术模块、视频技术模块与编解码模块的相关知识以及在项目系统实施过程中具体的应用。10第三章 多人网络视频会议系统的总体设计3.3 关系结构解析系统

39、采用 C/S 架构,每个客户端都直接与数据库建立连接,直接进行用户身份验证,失败返回,成功后与服务器建立通信连接,连接方式为 TCP 连接;客户端之间通过服务器进行信息的交换,当进行点对点视频、语音通信,或者进入会议室模式时,客户端之间建立分别建立视频、语音的 UDP 通信连接;综合来说,UDP 的连接,负责传输视频、语音的数据帧,其他的通信信息由与服务器连接的 TCP 连接负责。核心功能流程为,客户端的视频、语音模块分别捕获视频、语音数据,交由编解码模块进行压缩,压缩后的数据帧交给通信模块进行传输,接收端通信模块接收到数据后由编解码模块进行解码再给音视频模块播放出来。多人视频会议的时候,客户

40、端分别管理一份多人的用户名、地址信息,通信模块按照多人的地址信息组播到目标机器,目标机器客户端的通信模块根据数据源地址对应客户端管理的用户名地址列表将数据分别进行处理显示在客户端的不同位置。系统架设部署结构图:图 3-2: 系统部署关系图3.4 本章小结本章主要介绍了系统的总体结构与模块划分,对模块划分的原则与模块的具体划分以及本论文设计的模块的技术做了简要阐述;说明了系统的整体部署结构。11多人网络视频会议系统的设计与实现12第四章 多人网络视频会议系统的局域网通信模块第四章 多人网络视频会议系统的局域网通信模块即时通讯软件是利用网络进行交流的软件,多人视频会议系统正是在即时通讯软件的基础上

41、加入了大家期待的多人视频会议功能,所以网络通信任然是该系统的基础应用模块。本章将分层讲解通信原理知识和在项目实施过程中的具体应用。包括 TCP 、UDP 连接的建立、应用层数据报的封装、读取过程等等。4.1 TCP/IP 协议介绍TCP/IP 协议是一组包括 TCP 协议和 IP 协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。它采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这 4 层分别为:(1)应用层(Application Layer

42、 ):应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议( FTP)、网络远程访问协议(Telnet)等。(2)传输层(Transport Layer):在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP )等,TCP 和 UDP 给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。(3)互连网络层(Network Layer):负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。(4)网络接口层(Network Access Layer ):对

43、实际的网络媒体的管理,定义如何使用实际网络(如 Ethernet、Serial Line 等)来传送数据。13多人网络视频会议系统的设计与实现4.2 通信连接的建立4.2.1 系统 TCP 通信连接建立详解客户端与服务器建立 TCP 连接,所有控制消息以及文本聊天消息的通信依靠其完成。我们这里探讨怎样使用底层的 API 函数实现简单的 Winsock 网络应用程式设计,分别说明如何在 Server 端和 Client 端操作 Socket,实现基于TCP/IP 的数据传送。在 VC 中进行 WINSOCK 的 API 编程开发的时候,需要在项目中使用下面三个文件,否则会出现编译错误。(1)WI

44、NSOCK.H: 这是 WINSOCK API 的头文件,需要包含在项目中。(2)WSOCK32.LIB: WINSOCK API 连接库文件。在使用中,一定要把它作为项目的非缺省的连接库包含到项目文件中去。(3)WINSOCK.DLL: WINSOCK 的动态连接库,位于 WINDOWS 的安装目录下。TCP 连接建立的工程如下图所示:图 4-1:C/S 架构 TCP 通信连接的建立过程14第四章 多人网络视频会议系统的局域网通信模块在初始化阶段调用 WSAStartup() ;此函数在应用程序中初始化 WindowsSockets DLL ,只有此函数调用成功后,应用程序才可以再调用其他

45、WindowsSockets DLL 中的 API 函数。建立 Socket,调用 SOCKET socket(int af, int type, int protocol );应用程序调用 socket 函数来创建一个能够进行网络通信的套接字。第一个参数指定应用程序使用的通信协议的协议族,对于 TCP/IP 协议族,该参数置 PF_INET;第二个参数指定要创建的套接字类型,流套接字类型为 SOCK_STREAM、数据报套接字类型为 SOCK_DGRAM;第三个参数指定应用程序所使用的通信协议。当创建了一个 Socket 以后,调用 int bind(SOCKET s, const stru

46、ct sockaddrFAR *name, int namelen );套接字数据结构中有一个默认的 IP 地址和默认的端口号。一个服务程序必须调用 bind 函数来给其绑定一个 IP 地址和一个特定的端口号。客户程序一般不必调用 bind 函数来为其 Socket 绑定 IP 地址和断口号。该函数的第一个参数指定待绑定的 Socket 描述符;第二个参数指定一个sockaddr 结构。服务器绑定端口后,调用 int listen( SOCKET s, int backlog ) 函数,监听客户端的 SOCKET 连接。服务程序调用 accept(SOCKET accept(SOCKET s,

47、 struct sockaddr FAR *addr, int FAR *addrlen ));函数从处于监听状态的流套接字 s 的客户连接请求队列中取出排在最前的一个客户请求,并且创建一个新的套接字来与客户套接字创建连接通道,如果连接成功,就返回新创建的套接字的描述符,以后与客户套接字交换数据的是新创建的套接字;如果失败就返回INVALID_SOCKET。对应的客户程序调用 connect 函数(int connect(SOCKET s, const struct sockaddr FAR *name, int namelen ));来使客户 Socket s 与监听于 name 所指定的计

48、算机的特定端口上的服务 Socket 进行连接。如果连接成功, connect 返回0;如果失败则返回 SOCKET_ERROR 。数据的传送和接受由函数 send 函数(int send(SOCKET s, const char FAR *buf, int len, int flags ));和 recv 函数(int recv(SOCKET s, char FAR *buf, int len,int flags ));完成。15多人网络视频会议系统的设计与实现4.2.2 通信连接的管理客户端因为只存在一个 socket 与服务器连接,socket 的管理比较简单,只存在建立与关闭两种操作。

49、而服务器将管理众多客户端的连接,为了便捷的管理 socket 进行数据报的转发。系统在服务器端用 CMap 的数据结构保存用户名与 socket 的映射关系:CMap socketmap;客户端连接到服务器建立 socket 连接以后,服务器向 socketmap 中插入一项映射关系。即将新建的 socket 连接的 socket 与连接的客户端用户名建立映射关系,便于通过用户名找到对应的 socket 进行通信。表 4-1:某一时刻用户名与服务器 socket 数组的对应关系表序号 用户名 CMap:socketmap Socket 值1 Jamie socketmap“Jamie” 4682 Wuchao socketmap“Wuchao” 6443 Tom socketmap“Tom” 8634 Jerry socketmap“Jerry” 423当服务器需要进行消息的转发时,可以通过消息转发的目标客户端用户名索引到对应的 socket,然后将要转发的数据报写到索引到的 socket。一对多点传输时,消息中包含多个目标客户端的用户名,服务器将这些用户名存入一个数组,通过循环数组索引到每项对应 socket,实现群发的转发。4.3 数据的封

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报