VC多媒体传输系统的设计实现设计与实现
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘 要
随着互联网规模的日益扩大,文件和语音传输成为必不可少的网络功能。本文设计并完成了远程文件传输和实时语音传输系统。该系统基于TCP/IP协议、应用网络编程接口------Windows Sockets、使用基于MFC的Visual C++编程语言进行实现。其中文件传输过程采用TCP协议,实现同步操作模式下的客户/服务器通信模型;语音传输过程采用UDP协议,实现对等模式的通信模型,并加入压缩算法以提高传输速度和质量。该系统实现人与人之间便捷的传输文件和语音通话。
关键词:
文件传输,语音传输,TCP/IP,Windows网络编程接口,语音压缩
[资料来源:http://www.THINK58.com]
第1章 绪 论在科学技术不断发展的过程中,信息科技的革命引发了社会各个层次的变革,这些变革对信息技术本身的发展又提出了更高的要求,互联网(Internet)就是应运而生的技术之一。互联网(Internet)是一个基于TCP/IP网际互联协议的全球性互联网络,是一个开放管理、形式自由的网络集合。网络上的所有用户既可以共享网络资源,也可以把自己的网络资源发送到网络中去。互联网加快了信息传播的速度,拓宽了信息传播的广度,增加了所传播信息的数量。互联网对信息产业界产生了巨大的影响。
近几年来,我国网络发展也异常迅速,上网获取资源已不再是学术界的专利。互联网正逐步走进千家万户,越来越多的影响着人们的工作、生活和学习。
think58.com [来源:http://www.think58.com]
随着互联网(Internet)的日益扩大,远程文件传输和语音传输成为必不可少的网络功能。互联网上资源的种类和性质也十分丰富,如学术信息、科技成果、产品数据、图书馆书刊目录、文学作品、新闻、天气预报等等。这些资源分布在世界各地,有了远程文件传输这个功能,用户可以足不出户, 只要敲几个字就能轻而易举地获得想要的信息。在互联网上不仅可以传送文件信息,还可以传送语音信息,有了远程语音传输这个功能,可以实现语音信息的交互。在网络上的人与人之间就像有了口和耳朵。人们之间可以通过最直接的声音来相互通信。声音使得远隔万里的人们有了共同的语言,如同在身边一样方便,高效。
[资料来源:www.THINK58.com]
远程文件传输可以定义为:文件借助计算机网络在各个计算机之间传输。具体地、准确地说是指文件数据遵循一定规则在客户机端与客户机端之间,客户端与文件服务器之间或文件服务器与文件服务器之间的交换。文件服务实质上就是将各种文件集中在Internet网上一个或多个主机上,用户通过Internet连接到这些主机上,然后使用具有网络文件传输功能的软件进行文件下载或上传。
远程语音传输可以定义为:对模拟语音信号经过模数转换,进行编码压缩后,按一定的打包规则将压缩帧转换成IP数据包通过数据网进行传输,在目的地经过数据解压、数模转换复原成话音,从而达到语音通信的目的。
目前,关于远程文件传输和实时语音传输的应用程序有很多,但是这些程序往往比较庞大,占用资源较多,并且还会受到网络速度和防火墙因素的限制,因此对于局域网内的点对点传输来说不是最佳的选择。基于以上的原因,考虑设计一个偏重于点对点的远程文件语音传输系统,以便提高局域网内的传输速度和质量。
3.1.1 技术使用的分析
文件传输就是指把文件通过网络从一个计算机系统复制到另一个计算机系统的过程。因为要通过网络进行传输,所以应用Windows Sockets来实现网络通信。
Windows Sockets有同步和异步两种操作模式,使用同步模式编程比较简单,使用异步模式可以充分利用Windows操作系统的多任务机制,从而提高系统总的数据吞吐量。由于本课题的设计目标偏重于实现点对点的通信,因此使用了同步操作模式以简化设计。
[资料来源:http://think58.com]
在Internet中,实现这一功能的是FTP(文件传输协议),它是一个面向连接的协议,采用客户机/服务器模式。借鉴FTP的实现经验,在这部分的设计中也使用了客户机/服务器的通信模型。
另外,为了能可视化通信过程,依据通信过程设定了菜单栏,即服务器端的“开始侦听”,“发送文件”以及客户端的“连接服务器”。
总之,文件传输通过应用Windows Sockets,采用TCP协议,实现同步操作模式下的客户机/服务器通信模型。
本文来自think58 [资料来源:http://THINK58.com]
[资料来源:http://THINK58.com]3.1.2 面向连接的客户/服务器模型
服务进程和客户进程在通信前必须创建各自的套接字并建立连接,然后才能对相应的套接字进行“读”“写”操作,实现数据的传输。具体的编程步骤如下:
⑴服务器进程创建套接字
think58.com
服务进程总是先于客户进程启动,服务进程首先调用socket函数创建一个流套接字。
[资料来源:THINK58.com]
⑵将本地地址绑定到所创建的套接字上以使在网络上标识该套接字。这个过程通过调用bind函数来完成。
⑶将套接字置入监听模式并准备接受连接请求。bind函数的作用只是将一个套接字和一个指定的地址联在一起,让一个套接字等候进入连接的API函数则是listen函数。
进入监听状态之后,通过调用accept函数使套接字作好接受客户连接的准备。
⑷客户进程调用socket函数创建客户端套接字。
⑸客户向服务器进程发出连接请求。通过调用connect函数可以建立连接。
⑹当连接请求到来后,被阻塞进程服务的accept函数如⑶中所述生成一个新的套接字与客户套接字建立连接,并向客户返回接收信号。
⑺一旦客户机的套接字收到来自服务器的接收信号,则表示客户机与服务器己实现连接,则可以进行数据传输。send,recv函数是进行数据收发的函数。
⑻关闭套接字。一旦任务完成,就必须关掉连接以释放套接字占用的所有资源。通常调用closesocket函数即可达到目的,但closesocket可能会导致数据的丢失,因此在调用closesocket函数之前,应调用shutdown的函数从容的中断连接。
本文来自think58
[来源:http://www.think58.com]
[资料来源:http://think58.com] 面向连接的客户机/服务器模型流程图如图3.1所示:
内容来自think58 [资料来源:www.THINK58.com] [资料来源:THINK58.com]
包含资料:源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译
获取资料请您联系本站客服 [资料来源:www.THINK58.com]
[版权所有:http://think58.com]