找回密码
 加入
搜索
查看: 2402|回复: 6

怎样实现 多线下载 和断点续传

[复制链接]
发表于 2008-9-21 10:03:46 | 显示全部楼层 |阅读模式
如题,需要判断是否支持多线下载和断点续传,谢谢
发表于 2008-9-21 10:50:00 | 显示全部楼层
这个技术有难度哦...做出来的话就是一个下载器了..
发表于 2008-9-27 21:30:01 | 显示全部楼层
观注此贴,寻找多时了!
发表于 2008-9-28 08:30:37 | 显示全部楼层
好像迅雷就有这个功能但是 好像要大废周折
!!!!!!!!!!!!!!!!!!!!
发表于 2009-2-9 19:05:47 | 显示全部楼层
这样的帖子应该顶上去,众人拾柴火焰高
发表于 2009-2-10 09:24:27 | 显示全部楼层
我在网上查找了这样的资料,但是不知道如何转换成AU3的格式,具体如下
断点续传的原理
其实断点续传的原理很简单
其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。


打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:


假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。


GET /down.zip HTTP/1.1


Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-


excel, application/msword, application/vnd.ms-powerpoint, */*


Accept-Language: zh-cn


Accept-Encoding: gzip, deflate


User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)


Connection: Keep-Alive


服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:


200


Content-Length=106786028


Accept-Ranges=bytes


Date=Mon, 30 Apr 2001 12:56:11 GMT


ETag=W/"02ca57e173c11:95b"


Content-Type=application/octet-stream


Server=Microsoft-IIS/5.0


Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT


所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给


Web服务器的时候要多加一条信息--从哪里开始。


下面是用自己编的一个"浏览器"来传递请求信息给Web服务器,要求从2000070字节开始。


GET /down.zip HTTP/1.0


User-Agent: NetFox


RANGE: bytes=2000070-


Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2


仔细看一下就会发现多了一行RANGE: bytes=2000070-


这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。


服务器收到这个请求以后,返回的信息如下:


206


Content-Length=106786028


Content-Range=bytes 2000070-106786027/106786028


Date=Mon, 30 Apr 2001 12:55:20 GMT


ETag=W/"02ca57e173c11:95b"


Content-Type=application/octet-stream


Server=Microsoft-IIS/5.0


Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT


和前面服务器返回的信息比较一下,就会发现增加了一行:


Content-Range=bytes 2000070-106786027/106786028


返回的代码也改为206了,而不再是200了。

知道了以上原理,就可以进行断点续传的编程了。
发表于 2009-5-14 17:03:22 | 显示全部楼层
那有没有现在的例子啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-8 06:06 , Processed in 0.075956 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表