关于网友提出的“ 多线程FTP、HTTP下载的实现原理和代码”问题疑问,本网通过在网上对“ 多线程FTP、HTTP下载的实现原理和代码”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 多线程FTP、HTTP下载的实现原理和代码
描述: 下载了一个类似于“迅雷”多线程下载的例子。这个例子整到我头大,十分繁杂。照说“下载”的功能很简单,点一个download按钮开始下载,获取URL,文件名,大小作为参数;以多线程FTP的方式来下载。
该工程经过我整理后的情况:
1、downloadpub基类:派生出downloadFTP和downloadHTTP两个类。想这两个类是做不同下载方式之用。
2、CDownloadMTR类:里声明了要包含“downloadFTP.h”和“downloadHTTP”,
3、DownloadMTR类,是做一些应用程序具体的工作供Dialog里的“download按钮”等调用。
4、SocketClient类
5、无数的全局函数。
以上还是我进行了大量的瘦身后的工程
希望弄过这个的大虾说说原理,以及帮我理清下思路。好让我做一个出来
解决方案1: 好像 FTP本身就支持断点续传的
解决方案2: 首先服务期要支持断点续传,
多线程下载就是每个线程下载指定的大小
比如线程1下载1-1000,线程2下载1001-2000,线程三下载2001直到结束
每个线程连接服务器,告诉服务器下载的文件,及文件的开始结束位置
如果中间停止,就把已经下载的信息写到文件,下次去读文件,接着上次的下载
下载信息文件可以写一个单独的文件,也可以写到正在下载的这个文件里面
下载信息一般包含几个方面,线程数,线程下次开始结束点
举例来说,线程数3,线程1 200-1000,线程2 1500-2000,线程3 3000到结束,
你看的这个就是写到下载的文件末尾的,等完成后直接用CFile的SetLength设为实际大小
以上介绍了“ 多线程FTP、HTTP下载的实现原理和代码”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2985189.html