[VB.NET]断点续传怎么实现
2008-12-28 20:50
351 查看
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/23/973b26ad0b97e5388dff14c8f1002677.gif)
断点续传怎么实现
我正在做的一个软件里面有一个下载模块,
查了一下资料,需要用到system.net
大概步骤:
申明一个httpwebrequest类并用webrequest实例化;
判断系统内是否有该文件,如果有,读入该文件,并插入addrange,如果没有就创建该文件;
通过httpweburequest.getrespone获得远程文件信息,并httpwebrespone.read把远程文件读到流中。
从流中把信息写入到本地文件中。
这只是我在网上查到的相关资料,整理了一下思路,大家有没有什么好的方法,给电思路。或者给一个好的例子^_^
__________________________________________________________________________
要想断点续传,你首先要理解怎样使用Socket完整传输一个整体文件,在此基础上,再看你软件的需求是否需要多线程,如果是单线程的话就相对容易,你软件只需要了解文件当前以经下载了多少K,下次请求时从该位置直接下载,这里文件下载状态(进度)又可以用2种方法,1是直接读取以经下载文件的大小得到当前下载进度,2是建立一个进度表,使用方法1因为是直接读取下载文件大小得到进度,因此不能初始化文件磁盘空间,在硬盘中会产生很多碎片。用方法2则可以避免。
如果是多线程下载则要复杂得多,你可以把一个文件分解成若干个数据块,例如8K为一个数据块,对每个数据块进行编号,同时你也要定义一个进度表,记录该文件每个数据块的下载情况,每个线程检索进度表,得到一个未下载的数据块号并从服务器下载该数据。同时这里面又涉及到线程同步问题(你总不会让你的几个线程同时得到同一个未下载的数据块号吧)、数据校验问题等。
__________________________________________________________________________
相关文章推荐
- 在VB.NET中怎么实现多窗体同步
- [VB.NET]哪个大虾教我怎么实现登陆是输入验证码,用VB.NET写的
- 在VB.NET中怎么实现多窗体同步(1)
- vb.net向acces数据库添加记录,怎么用代码实现?
- SQL Sever 中的事务怎么通过vb.net 实现?
- vb.net是怎么实现的(转载)
- [VB.NET].NET精简框架下用VB.NET怎么实现在picturebox上显示不同图片???
- [VB.NET]QQ截图矩形右边的信息显示怎么实现?
- [VB.NET]csdn上的论坛树型结构是怎么实现的呢 ??用的是什么技术和控件啊?
- [VB.NET]求助!用VB.NE怎么实现TDataGrid的Web打印
- [VB.NET]在Datagridview中添加数据,并且是成批添加修改,怎么实现
- vb.net是怎么实现的
- 实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法
- VB.NET中实现"关机/休眠/重启/注销"的类
- VB.NET实现的控制外部应用程序窗口或控件行为的函数源程序
- vb.net三层实现登录例子
- vb.net实现Vb中的Any变体类型
- vb.net 初始屏幕界面透明实现方法
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- VB.NET使用接口实现附带插件功能的程序