A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© forward进 初级黑马   /  2017-10-31 19:28  /  1531 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

       随着信息技术的发展,网络资源的大小也愈发扩大,动辄几G几十G。在网络宽带有限的情况下需要短时间内把几G十几G的资源下载下来无疑是很难的,如果在下载过程中网络出现错误,导致网络连接断开或者需要暂停下载,导致资源需要重头下载是非常耗时的。因此当网络中断后,接着上次下载的进度进行再次下载是非常必要的,如迅雷等下载工具的断点续传的功能。       要实现断点续传的功能,从原理上可分为两种:

       原理一:
       ①当资源上传至服务器,根据文件长度分配内存空间时,把文件根据一定长度分成若干个子文件。
       ②用户下载该文件时,实际上是将其子文件一个一个的下载至本地,当网络中断前下载任务未完成,记录其下载的完整的子文件进度(如下载到某个子文件等,如某子文件未下载完全,取消其下载进度,再次下载时从该文件重新开始下载进度)。
       ③用户网络重连,进行下载时从未下载的子文件开始下载。
       ④下载完成后,将所有子文件重新合并成一个文件,即完成下载任务。


        原理二:
        ①当资源上传至服务器,根据文件长度分配内存空间。
        ②用户下载该文件,网络中断后,根据偏移量或对比下载至本地的文件长度记录其下载进度。
        ③用户网络重连后,将根据偏移量或对比服务器与本地的文件长度,将光标移至还没下载部分的开头进行下载。
        ④未下载部分以追加的形式与已下载部分进行合并,直至下载任务完成,在本地形成完整的文件。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马