多线程断点续传文件的原理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多线程传输实现

多线程传输实现

实现原理:

将源文件按长度为分为N块文件,然后开辟N个线程,每个线程传输一块,最后合并所有线线程文件.比如一个文件500M我们按长度可以分5个线程传输.第一线程从0-100M,第二线程从100M-200M......最后合并5个线程文件.

实现流程:

1.客户端向服务端请求文件信息(名称,长度)

2.客户端跟据文件长度开辟N个线程连接服务端

3.服务端开辟新的线程与客户端通信并传输文件

4.客户端将每线程数据保存到一个文件

5.合并所有线程文件

断点续传:

所谓的断点续传就是指:文件在传输过程式中被中断后,在重新传输时,可以从上次的断点处开始传输,这样就可

节省时间,和其它资源.

实现关键:

在这里有两个关键点

其一是检测本地已经下载的文件长度和断点值;

其二是在服务端调整文件指针到断点处

实现方法:

我们用一个简单的方法来实现断点续传的功能.在传输文件的时候创建一个临时文件用来存放文件的断点位置

在每次发送接受文件时,先检查有没有临时文件,如果有的话就从临时文件中读取断点值,并把文件指针移动到

断点位置开始传输,这样便可以做到断点续传了

实现流程:

首次传输其流程如下

1.服务端向客户端传递文件名称和文件长度

2.跟据文件长度计算文件块数(文件分块传输请参照第二篇文章)

3.客户端将传输的块数写入临时文件(做为断点值)

4.若文件传输成功则删除临时文件

首次传输失败后将按以下流程进行

1.客户端从临时文件读取断点值并发送给服务端

2.服务端与客户端将文件指针移至断点处

3.从断点处传输文件

相关文档
最新文档