文件流传输
A. 流式传输的传输方式
顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。
对通过调制解调器发布短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟,毕竟可让你发布较高质量的视频片段。
顺序流式文件是放在标准HTTP或FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频(但可以支持随机访问),如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。 实时流式传输指保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。
实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。
实时流式传输必须配匹连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视频质量,顺序流式传输也许更好。实时流式传输需要特定服务器,如QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。实时流式传输还需要特殊网络协议,如:RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。这些协议在有防火墙时可能会出现问题,导致用户不能看到一些地点的实时内容。
B. 如何流传输大文件
问题?解法要流传输大文件,需要添加传输译码(Transfer-Encoding)区块头,这样才能一边下载一边显示。否则,浏览器将缓冲所有数据直到下载完毕才显示。)例子# Simple streaming server demonstration # Uses time.sleep to emulate a large file read import web import time urls = ( "/", "count_holder", "/(.*)", "count_down", ) app = web.application(urls, globals()) class count_down: def GET(self,count): # These headers make it work in browsers web.header('Content-type','text/html') web.header('Transfer-Encoding','chunked') yield 'Prepare for Launch!' j = 'Liftoff in %s...' yield '' count = int(count) for i in range(count,0,-1): out = j % i time.sleep(1) yield out yield '' time.sleep(1) yield 'Lift off' class count_holder: def GET(self): web.header('Content-type','text/html') web.header('Transfer-Encoding','chunked') boxes = 4 delay = 3 countdown = 10 for i in range(boxes): output = '' % (countdown - i) yield output time.sleep(delay) if __name__ == "__main__": app.run()
C. 文件传输的文件传输方式
根据移动和存储文件、打印文件和程序输入等目的不同,文件传输有三种工作方式,即信息流方式、压缩方式和信息块方式。
①信息流方式把文件作为字节流传输。文件可分为若干由一系列字节或机器字长为单位的逻辑单元所组成的逻辑记录。在一个记录或一个文件的结尾有“记录结束”或“文件结束”等“结束”标志。“结束”标志由两个字节组成。第一字节为“转义”字节,第二字节为 相应的“结束”字节。如果文件中的数据字节恰与“转义”字节相同,即按字符填充办法处理。也就是说发方在数据字节前多发一“转义”字节,而收方遇到到连续两个“转义”字节时去掉一个,以达到数据的透明传输。
②压缩方式 也是把文件表示成字节序列进行传输,但把其中重复出现的字节(如空白字符)进行压缩,以提高传输效率。为此,这种字节流是由常规数据、压缩数据和控制信息三种成分相互交错组成。毎一成分之前均有一字节指出相关信息。打印文件采用此方式。
③信息块方式把文件表示为一系列信息块进行传输。每块前面有指出该信息块长度的块头。
虚文件概念在计算机系统中,文件格式和数据表示不尽相同,如不同的字符集、编码以及机器字长等。传输文件时为使数据的语义保持不变,需要作相应转换。为了减少转换软件的数量,引入虚文件概念。在网路范围内定义共同的虚文件结构和虚文件传输系统。制定一种标准的逻辑文件结构和数据表示。各个主机在传输文件时,要把自己的文件数据转换成能在网路上传输的标准形式。而目的主机在接收时再把它转换为自己的局部形式。由此解决了不同的文件管理系统之间的不相容问题。