原帖在http://topic.csdn.net/u/20090410/21/5d01c639-d4fe-4227-9e0f-cfce7514b99e.html
回复让我心酸。求可以多任务下载,同时可以配置一个任务有N个连接,N个线程下载的源代码。哎
需求难道一定和描述的字数成正比吗?N个连接,N个线程,可配置
多任务下载VCKBASE搜了,百度,google量太大,当然我也搜索过。
我想应该有经典点的代码。麻烦高手推荐下。最好是小一点的。谢谢
回复让我心酸。求可以多任务下载,同时可以配置一个任务有N个连接,N个线程下载的源代码。哎
需求难道一定和描述的字数成正比吗?N个连接,N个线程,可配置
多任务下载VCKBASE搜了,百度,google量太大,当然我也搜索过。
我想应该有经典点的代码。麻烦高手推荐下。最好是小一点的。谢谢
非FTP,使用CHTTPFile类,细节就不说了
我的使用HTTP,断点续传(本次未下载完的下次下载),目前我这有两种办法:1.通过请求头中的Range:0-100 2.比较文件 先取得本地文件,如果文件存在且大小悬殊,则CFile aFile;
aFile.Open(sFileName,CFile::modeWrite | CFile::typeBinary);打开文件,否则aFile.Open(sFileName,CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
通过DWORD dLen = aFile.GetLength();取得文件大小,aFile.Seek(dLen, CFile::begin);移动指针,断点续传就从此处开始。
这是本地文件已经准备好了,现在在准备待下载文件,也定位到dLen的地方,但是使用CHttpFile* pHttpFile = NULL;...
pHttpFile->Seek(....)方法总是不行,一个未知的错误,原因还未知,不过不用这方法同样可以:
nLen = pHttpFile->Read(szBuffer, 1024); //读数据
while(nLen >= 1024)
{
dwDownloadSize += nLen; //已下载大小
if (dLen <= dwDownloadSize -1) //!!! -1
{
aFile.Write(szBuffer, nLen);
}
}
.....
同样可以放在多线程中
http://www.easygeteasy.com