先看下以前做的一个小项目,多线程下载器。
http://blog.youkuaiyun.com/maoxiang/archive/2008/05/24/2478707.aspx
这几天,重新整理了一下,写了一个工具类,方便在各种场合下使用。
设计的几个要点:
1. 把每个下载文件切成若干个块(Block),然后得到一个位图,用来标记每个块的下载情况,并保存到文件里,用于实现断点续传。
2. HTTP Header里增加Range,如果服务器返回Cotent-Range 说明服务器支持文件定位,可以实现多线程下载。
接下来直接看看代码吧:
我写了一个用Http Component组件实现的,不过目前版本,4.0.1 在连接池管理上貌似有问题,连接不能正确关闭,有兴趣的可以调试看看
使用测试