实现断点续传之源码贴近来~~贴近来~~我的分数飘过来~~飘过来~~(180分)

  • 主题发起人 主题发起人 房客
  • 开始时间 开始时间

房客

Unregistered / Unconfirmed
GUEST, unregistred user!
多线程
DELPHI实现
其他无理要求以后再加。。
 
单线程
linux的行不?
条件:180分全给我
再加条件再加分
 
如果使用ICS控件,那么
HttpCli.ContentRangeBegin := '100' 表示从100开始
HttpCli.ContentRangeEnd :='' 表示一直到结束
HttpCli.ContentRangeEnd :='200' 表示到200字节处结束

如果使用 TNMHTTP 控件
在OnAboutToSend事件,写:
NMHTTP1.SendHeader.Values['Range'] := 'bytes=100-' 表示从100字节处开始下载到最后
NMHTTP1.SendHeader.Values['Range'] := 'bytes=100-200' 表示从100字节处开始下载到200字节处结束
 
这个很早以前我问过,,半年前...没人回答..现在关注
 
至于多线程,控件在子线程中创建就可以
 
收藏……
 
procedure TForm1.Button6Click(Sender: TObject);
var
f:TSearchRec;
begin
FindFirst('a.doc',faAnyFile,f);
fPreSize:=f.Size;
NMFtp.DoCommand('Rest '+IntToStr(fPreSize));
NMFtp.DownloadRestore('a.doc','a.doc');
end;

这是用TNMFtp来续传的代码。

还有一个是用ICS的FTPClient控件做的多线程FTP下载的代码,太长,就不贴了。不过也
没什么技术难度的。
 
Pipi.:
非常感谢,请再指点如何得到文件大小?
在子线程中创建为求稳定,是否有必须注意的地方?
教父:
对不起,忘了说是HTTP的了
不过JINGTAO兄告知我HTTP和FTP其实是一样的原理
 
Pipi.:
>非常感谢,请再指点如何得到文件大小?
对不起,请不要回答此问,给您带来时间的浪费诚表歉意。。
 
没有什么好注意的了,反正那个在子线程创建的对象,不要在其他
线程访问这个对象的属性和方法就可以了。
注意不要在线程 TThread 的 constructor (Create)内创建对象,
因为constructor (Create)是在父线程执行的,Execute过程才是
运行在子线程
 
这么简单的问题都拿来讨论,真丢脸。

我用sdk 都做得出来。。。
API 函数都行!
 
保存断点好说,问题是下次怎么直接从该断点位置下载?
是先接收,判断是否到该位置,然后再接??? 不对。。。。。。。。:(
 
你先用FindFirst得到已经下载了的文件大小,然后再用Pipi的方法不就行了。
 
谢谢大家了 代码还是。。自己动手 丰衣足食
 
多人接受答案了。
 
后退
顶部