VC0039网络即时通信的原理和实现答辩材料ppt课件
题目:网络即时通信系统的原理与实现,:,说明: 1.需本答辩稿配套的程序及论文,可以访问 www.jsjfw.net 下载 2.有什么不明白的地方,可以联系作者本人QQ:513681372,一.前言,随着对于信息的需求越来越强烈,人们已经不满足于通过互联网、邮件、电视等媒体获得信息量了,他们对于信息的及时性要求越来越高。对于外界的联系,人们也不仅仅局限于电子邮件和电话,他们需要更快的联络方式-即时信息(Instant Messenger,简称IM),以便可以随时随地传递信息。,二.研究背景,即时通讯软件是互联网应用工具软件,它就使得即时通信变的可能。由于现有的即时通信通信系统主要面临的技术难题有: 音频与视频必须同步播放,那么就需要解决它们如何同时开始和停止,并且拥有同样播放速率(rate); 数据流可以是不同的格式,如AVI,ASF还可以是MPEG等。如何解决它们,使能够同样地播放和处理; 在实施程序设计时,并不了解使用者的硬件配置与性能。如何使得应用程序具有机器无关性 。,三、研究课题,针对这些难题,就有了 DirectShow解决方案,它主要设计目的是简化建立基于Windows平台的数字媒体应用程序的设计任务,并无需涉及数据传输,硬件通用性,媒体同步等等诸多复杂问题。故此,我们设计的最终目的,是运用Directshow 技术和网络技术相结合而开发出视频聊天的网络即时通信系统。,四、研究意义,作为重要的多媒体应用之一,网络即时通信的研究有很重要的意义。随着我国改革开放的不断深入和经济的迅速发展,信息、时间、效益等现代化的观念已深入人心,加之近年来我国的突飞猛进的通信网建设,作为现代化的通信手段之一的网络即时通信越来越受到人们的重视。如果采用网络即时通信的形式召开会议,既达到了开会的目的,又不需将大量时间花在旅途上,节约了时间和资金。不仅如此,网络即时通信实时性、交互性好的特点,使它在远程教育、远程医疗等方面也大有用武之地。,五、实现目标,我们的这次应用程序的设计要实现的主要目标就是一个运用 Directshow 技术和网络技术相结合而开发出视频聊天的网络即时通信系统,具体的说:l聊天双方必须是一个作为服务器,一个作为客 户机。该应用程序将服务器的功能和客户机功能合并在一起实现;l可以在开始音视频采集、网络传输之前进行本 地采集设备自检;l 可以把本地音视频传送给远程端;l 可以向服务器发出连接请求;l 服务器和客户机任何一方可以中止视频通话。,六、(1)方案设计,下面介绍实现这个网络即时通信系统即视频聊天应用程序的技术要点 l 在网络技术方面:Socket为了能在同步模式下工作,应该采用多线程技术。在这个应用程序中,我们将创建一个工作线程程序该工作线程程序实现的功能是网络即时通信系统的一个功能接受连接,分析请求和发送数据等。 l 在DirectShow方面:将本地采集的得到的音视频数据使用Socket传输给远端和播放从网络远程端接收的音视频。 l 为了在Socket上传输的数据简单化或者说提高Socket传输的效率,音频数据和视频数据的传输将分离,分别为它们创建一条Socket连接。而在单个Socket上,可以同时进行数据的发送和接收。,(2)VC工作区类结构,七、具体实现,作为Filter开发的一条基本原则,Filte 实现的功能应该力求单一。因此我们在编写AVChat 程序时,将Socket相关的操作都放在应用程序层上完成,而仅将完成连接的Socket句柄通过Filter的公共接口给Net Sender和Net Receiver。这两个Filter在内部实现时,只须使用外部设置进来的Socket进行数据的发送和接收就可以了,而不用去管Socket的创建、连接等一系列繁琐的交互过程。,(1)采集设备自检,图(一)将本地采集的音视频发向网络远程端,图(二)播放从网络远程端接收的音视频,进行网络即时通信首先要进行采集设备自检,而要使它能正常的工作,就必须有音频采集与视频采集成功。而为了避免发送和接收、音频和视频的相互干扰,AVChat 程序将音频的发送、视频的发送、音频的接收、视频的接收分离,分别构建一个Filter Graph。 如图所示:,(2)控制实现,在建立网络连接之前,通信双方扮演的角色是不一样的,而且必须一个是服务器,一个是客户机。于是出现了问题:角色不同,要求的控制逻辑也不会一样,但要在同一个程序中实现。这显然对AVChat 程序的设计提出了更高的要求。但是我们可以使用一个CroleAdmin 类专门定制服务器和客户机两中角色控制的共性,然后以CroleAdmin 为父类,派生一个CserverAdmin 类专门定制服务器的特性,派生一个CclientAdmin 类专门定制客户机的特性。考虑到角色控制同样也包括对Filter Graph的控制,因此将CroleAdmin 类从Cpreview Admin类派生。,(3)调试运行,我们所做的这个程序的工程文件是在Visual C+ 6.0创建的,工程的编译和调试也是在VC的编译环境中进行。我和李德分别完成了各自的函数和对话框的编写后,进行了合成,检查网络即时通信的各个功能的实现情况,调试解决故障。经过调试,这个网络即时通信程序基本完成了。 (演示可执行文件),八、对程序的不足之处的分析,在程序完成之后,经过多次运行,基本上可以完成网络即时通信的功能。但是,在视频传送和播放方面,还是存在着一些目前未能克服的缺陷,现列举如下: 因为对视频播放和窗口指针定位的编程不熟悉,原来计 划使用非模式对话框来实现本地和远程视频的显示,但是每次切换窗口总是无法使指针回到原窗口,所以只能使用模式对话框。 在进行网络即时通信即视频聊天时会感到对方说话的声音有些滞后,音频采集设备默认情况下使用采集缓存能够容纳500ms的数据,只有在采集满了500ms数据后,音频采集设备Filter才会送出一个Sample。而视频采集以帧率25fps为例,视频采集设备Filter每输出一个Sample的时间间隔是40ms,所以音频数据要比视频数据迟送出460ms,于是在远程端接受数据后进行播放时间,音频数据不能很好地同步。 由于观看图像的对话框使用了DirectShow的ActiveX控件窗口,在关闭对话框时,后台的AVChat 进程会弹到前台询问即时通信是否关闭。另外,该程序可能还存在我们未能查出的其它漏洞,需要在以后的完善中找出解决。,九.结束语,本文对网络即时通信进行了详细的分析,阐述了网络即时通信的基本原理,总结了Directshow 技术以及网络技术的特点,并介绍了TCP、UDP协议的基本工作原理。同时针对现今网络即时通信技术主要面临的技术难点,提出了基于DirectShow的解决方案,设计目的是简化建立基于Windows平台的数字媒体应用程序的设计任务。并使它无需涉及数据传输,硬件通用性,媒体同步等等诸多复杂问题。 l完成所需的音视频流的处理,DirectShow应用了DirectDraw和DirectSound技术。 lDirectShow 通过压缩媒体流上的时间标记(time-stamped)来实现媒体同步重放。 l能够处理不同可能出现的数据源、数据格式以及硬件系统,DirectShow采用了一种标准化结构体系。,(1)论文小结,(2)个人小结,通过本次毕业论文的设计,我个人也有很多收获: 我对网络即时通信的机制,适用范围和发展前景有了比较系统的认识。 了解了TCP协议与UDP协议的组成和原理,及这些通信协议在网络即时通信中的作用。 在编写毕业设计程序的过程中,我逐步地掌握了一些VC的使用技巧,在编程中独立分析问题,解决问题的能力有了很大的提高,为今后的工作和学习打下了良好的基础。 对于团队合作精神有了更深刻的领悟。在我们小组成员的共同努力下,该系统终于达到了预期的效果。,(3)展望,近一、两年来,即时通讯软件(InstantMessenger)的发展突飞猛进。在短短的几年内,网络即时通信大有取代传统通信方式之势。继电子邮件之后,即时通讯对我们的通信方式又进行了一场革命,这种革命甚至延续到了我们的感情领域,只要双方都在互联网上。即时通讯所拥有的实时性、跨平台性、成本低、效率高等诸多优势,使之日益受到网民们的喜爱。而作为现代化的通信手段之一的网络即时通信越来越受到人们的重视。如果采用网络即时通信的形式召开会议,既达到了开会的目的,又不需将大量时间花在旅途上,节约了时间和资金。不仅如此,网络即时通信实时性、交互性好的特点,使它在远程教育、远程医疗等方面也大有用武之地。,十、致谢,首先我要衷心感谢我的导师吴让中老师,是他在百忙之中为我们搜集毕业设计所需的材料,时时关心我们设计的进度,不辞劳苦为我们进行各方面的指导。在此向指导老师表示深深的谢意!感谢帮助过我的同学们,他们给了我极大的帮助,与他们相处合作的日子让我感到愉快,与他们的讨论使我深受启发。感谢所有关心帮助我的朋友们,他们的友谊是我此生最宝贵的财富,因为朋友,我的生活才如此丰富多彩。在此向所有帮助过我的老师、同学们致以最真诚的谢意!,欢迎提问!,谢谢!,