前端之家收集整理的这篇文章主要介绍了
[VB.NET]断点续传怎么实现,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
断点续传怎么实现 我正在做的一个软件里面有一个下载模块, 查了一下资料,需要用到system.net 大概步骤: 申明一个httpwebrequest类并用webrequest实例化; 判断系统内是否有该
文件,如果有,读入该
文件,并插入addrange,如果没有就创建该
文件; 通过httpweburequest.getrespone获得远程
文件信息,并httpwebrespone.read把远程
文件读到流中。 从流中把信息写入到本地
文件中。 这只是我在网上查到的相关资料,整理了一下思路,大家有没有什么好的
方法,给电思路。或者给一个好的例子^_^ __________________________________________________________________________ 要想断点续传,你首先要理解怎样使用Socket完整传输一个整体
文件,在此基础上,再看你软件的需求是否需要多线程,如果是单线程的话就相对容易,你软件只需要了解
文件当前以经下载了多少K,下次请求时从该位置直接下载,这里
文件下载状态(进度)又可以用2种
方法,1是直接读取以经下载
文件的大小得到当前下载进度,2是建立一个进度表,使用
方法1因为是直接读取下载
文件大小得到进度,因此不能初始化
文件磁盘空间,在硬盘中会产生很多碎片。用
方法2则可以避免。 如果是多线程下载则要复杂得多,你可以把一个
文件分解成若干个数据块,例如8K为一个数据块,对每个数据块进行编号,同时你也要定义一个进度表,记录该
文件每个数据块的下载情况,每个线程检索进度表,得到一个未下载的数据块号并从服务器下载该数据。同时这里面又涉及到线程同步问题(你总不会让你的几个线程同时得到同一个未下载的数据块号吧)、数据校验问题等。 __________________________________________________________________________