文件名称:用ftp协议完成多线程断点续传的源码
- 所属分类:
- Internet/网络编程
- 资源属性:
- [C/C++] [源码]
- 上传时间:
- 2012-11-26
- 文件大小:
- 94kb
- 下载次数:
- 0次
- 提 供 者:
- 屠**
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
各个线程任务分配是这样实现的。在开始下载时,文件平均分成若干块进行下载。如第一个线程一开始的任务是从文件的0位置开始下载一直到72908位置处。线程1每次下载一块数据后就要调整任务,如第一次下载了20800字节的数据,那么线程1的任务将改为:20800-72908。如此下去,直到任务为72908-72908时表示线程1完成了当前的下载任务。此时,线程1就分析各个线程的任务,找出任务最为繁忙的一个线程:如线程3:14816-218724。那么线程1就自动去调整任务,拿50%的任务来再次下载。周而复始直到各个线程都完成任务。不过这里有一点需要注意:为了避免重复下载部分数据,在调整任务的时候,起始的文件便移量必须加上接受缓冲器的字节数,因为如前面所举的列子来看。线程1和线程3在平衡负载的时候,线程正在下载数据,如果所剩的数据比接受缓冲器的大小还小,线程1和线程3的部分下载数据将会重复。
在调整任务和分析任务的时候,会发现一个问题。就是读取文件数据太过频繁。于是我用了一个数据结构。在下载文件的过程中始终打开配置文件,这样速度提高了很多。在文件下载完毕后关闭文件。-various threads assignment is achieved. At the beginning of the download, the paper divided into a number of pieces of the download. As a thread of a task is to start from the position paper of 0 to start the download has 72,908 locations Department. Thread a download each one will have to adjust the data tasks, such as the first downloaded 20,800 gigabytes of data, then threaded a task will be re :20800- 72908. This situation continues until the mandate of 72908-72908 said threaded a completion of the current mandate of the download. At this point, a thread on the analysis of the various threads of tasks, the most heavy task to find a thread : If 3:14816-218724 threads. Then a threaded automatically adjust the mandate, with 50% of the tasks to be downloaded again. Thread cycle until all
在调整任务和分析任务的时候,会发现一个问题。就是读取文件数据太过频繁。于是我用了一个数据结构。在下载文件的过程中始终打开配置文件,这样速度提高了很多。在文件下载完毕后关闭文件。-various threads assignment is achieved. At the beginning of the download, the paper divided into a number of pieces of the download. As a thread of a task is to start from the position paper of 0 to start the download has 72,908 locations Department. Thread a download each one will have to adjust the data tasks, such as the first downloaded 20,800 gigabytes of data, then threaded a task will be re :20800- 72908. This situation continues until the mandate of 72908-72908 said threaded a completion of the current mandate of the download. At this point, a thread on the analysis of the various threads of tasks, the most heavy task to find a thread : If 3:14816-218724 threads. Then a threaded automatically adjust the mandate, with 50% of the tasks to be downloaded again. Thread cycle until all
(系统自动生成,下载前可以参看下载内容)
下载文件列表
project
.......\MultiFtp.cpp
.......\MultiFtp.h
.......\MultiFtp.obj
.......\MultiFtp.~cpp
.......\MultiFtp.~h
.......\MultiFtpDownloadThread.cpp
.......\MultiFtpDownloadThread.h
.......\MultiFtpDownloadThread.obj
.......\MultiFtpDownloadThread.~cpp
.......\MultiFtpDownloadThread.~h
.......\MultiThreadDataClass.cpp
.......\MultiThreadDataClass.h
.......\MultiThreadDataClass.obj
.......\MultiThreadDataClass.~cpp
.......\MultiThreadDataClass.~h
.......\MultiThreadDealScoket.cpp
.......\MultiThreadDealScoket.h
.......\MultiThreadDealScoket.obj
.......\MultiThreadDealScoket.~cpp
.......\MultiThreadDealScoket.~h
说明.txt
.......\MultiFtp.cpp
.......\MultiFtp.h
.......\MultiFtp.obj
.......\MultiFtp.~cpp
.......\MultiFtp.~h
.......\MultiFtpDownloadThread.cpp
.......\MultiFtpDownloadThread.h
.......\MultiFtpDownloadThread.obj
.......\MultiFtpDownloadThread.~cpp
.......\MultiFtpDownloadThread.~h
.......\MultiThreadDataClass.cpp
.......\MultiThreadDataClass.h
.......\MultiThreadDataClass.obj
.......\MultiThreadDataClass.~cpp
.......\MultiThreadDataClass.~h
.......\MultiThreadDealScoket.cpp
.......\MultiThreadDealScoket.h
.......\MultiThreadDealScoket.obj
.......\MultiThreadDealScoket.~cpp
.......\MultiThreadDealScoket.~h
说明.txt