利用Http协议实现断点续传.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:9 大小:76KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

利用Http协议实现断点续传.doc

利用Http协议实现断点续传.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

利用Http协议实现断点续传朱爱梅摘要:本文介绍断点续传的原理和实现,并说明了如何利用Jd啊语言通过}丑tp协议实现断点续侍功能的程序。关键词:jg忸;断点续待;序列化;流;}hlp协议;hm哪矗中图分类号:n笛.16文献标识码:A文章编号:cN43一10凹,F120昕)9—18l一仇作者:湖南科技职业学院软件学院;湖南,长沙,410006一、断点续传说明断点续传指当信号中断后(掉线或关机等),下次能够从上次中断地方开始接着传送(一般指下载或上传)。不支持断点续传就意昧着下次下载或上传必须从零开始,断点续传能提高下载的效率。二、断点续传的实现。1.虽然断点续传的原理非常简单,但是在I删上如何实现了?在h棚域上,所有的连接都是无状态的.邳当用户与服务器进行一次通信完成后,服务器将不再保留本次通信的状态与信息。那么当文件从服务器下载到客户时.如果因为掉线或者关机.此时连接将被中断,下次开机后想继续下载,怎样才能恢复到上一次文件下载的位置了,如果不能恢复,剐必须重新开始下载。其实要解决这个问题也非常简单.通过对}hlp协议的分析后将会非常清楚。2.当客户与服务器在hll印蛾上通过}hlp协议进行联系时,客户首先向服务器发出请求.所发出的请求如下;假设服务器名为hnp:,几浏-ml/,请求的文件名为:n咖峙2.1日GEr/蛳越.mH邪Ⅳl,l^雌似妇势,西如孵^一出唧。劬叼川p唱.蛔d酬p昭,lppli瑚d堋/甜.瞄一施I,‘p.曲cd硼/艏删,appli翻ti日n/vnd.瞄一—帆lp缸,-/-A∞ept—h唱岫髀出一∞^oc印l—b峨:鳓。dd】疵u吲一船眦:地盐以.O(∞q埘bIe;№m6.0;Wir由%Nr5.O)c0∞喊.啪:Ke印一AI娩服务器收到请求后,接要求寻找请求的文件.提取文件的信息,然后返回给谢览器,返回信息如下:2∞cort耐一蚴=106786瞄^唧一R龃静2埽汹胁=删,∞M町帅ll:56:1l鲫Ⅱ缸;W广02ca卯et嚣cll:蝤b”C暖岫t一西∞=卵一io妇l,0cld—drⅫ船啊#蜥哪日曲一璐,6.Ok一№di6ed=删,30M町瑚7llO:56:11G^fr其中∞口表示连接正常。jf廿/18l3,所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给web服务器的时候要多加一条信息——矾哪里开始。下面是用自己编的一个。浏览器”来传递请求信息给web服务器。要求从20000字节开始cEr/删.Ⅲm口/1.0u目一^耐:蝴嗍:b睡=200∞一//告诉服务器从什么位置开始下载此文件知oe弘:馏∥l虹d.血彩西.蚰∥ipeg,。;q2,2,*/。;q2.2服务器收到这个请求以后,返回的信息如下:∞6car血眦一螂=14姗蛐一R孵=呐20000一143鲥1倒l‰=删.30脚帅ll田:2DGMTET吨=W/。0‰研emcll:95b”c叽惦瞳一嘶=婶I龇础m/0M一目remSw=腼砌一螂.OI磨一蛐ed=硼,30脚20叮l10:56:11CMT秆前面的服务器信息比较,会发现增加了一行:Q曲蚍一陆学=by晒20∞0一1433印/14336l。返回代码也变成了206。表示客户发送了—个带有lla噼头的GEr请求,服务器已经完成了它。、4.实现断扇濮传的关键点:(1)提交EuNcE,使用jm.憾提供的功能。URLIni=I州u甩(。}llIp://I蚴I}嘣/my|i睡2.却”);IhIpl瓜IcolⅡlec【i啊lhuPc咖州ion=(H却【IIILc唧幽I)d.op耐hⅡm妇l//设置UH—A鲫妇由船州洒.嘲Ile掣蚶呐(。u晦一A曾甜,。嘣明r);/,设置断点续传的开始位置}llpc咖砖d抽.叫R唧I吲h叩呻(。Il^NGE...。b虹=2∞∞”);∥获得辖A流hl印IsIie锄iI单幢=h杠h峨硝∞.geIhl胛Is晌盘();(2)保存文件。采用的是jm扁包中的R鲫d^。嘲s冈e类。操作相当简单。假设从20000处开始保存文件,代码如下:R硼“m^嗍哂a帕舾le=l柳Rand咖^慨s塌le(。脚试睁2.Ⅲ”,。T,);h骣T舳=200∞;/,定位文件指针刭I】P∞位置Ds蹦小nk.9诎(nB∞);№[]b=I目埽科10斛】;缸nRed;//从输人流中读人字节流,然后写到文件中WhiIe((nRed=砸d.1鼬d(b.0.10拼))&辑;0)l出∞mlc.赢(b,0,rIRe日d);}三、程序的部分源代码I.程序共由5千类组成:氟妇雹l正面:封装站点信息的B∞类m_I删e^:60n:执行下载任务的韭务类D。咖矸k王面:巳下载文件信息的B嘲类F珂幽程序运行的主窗体类知趣醯l函钿jIl:据万方数据、耽企韭窘天地?建论疆,∞∞,9创造自我管理型组织——生产部门绩效管理麦麦提明摘要:现代管理