2024年5月9日发(作者:)

利用P2P下载工具实现离线下载服务

【摘要】当用户使用普通下载工具下载大的资源文件或者冷门资源时,常常要等待一

天甚至更长时间才能完成,下载时需要长时间地占用用户的电脑资源和网络资源,用户不

能关闭下载工具和个人机器。而离线下载是利用服务器“代”用户进行下载,待服务端下

载完成后,用户再用下载工具将资源从服务器取到自己本机,具备无需挂机等待、高速的

特点。本文所述的是利用成熟的P2P下载工具BitComet、eMule进行二次开发,对用户

提供离线下载服务的方法,该方法同时支持HTTP、BT、ED2K、MAGNET多种下载方式。

而且在服务端可以分布运行多个P2P下载工具,以满足客户端的大量用户下载请求,下载

任务在各个下载引擎上的分配由服务端统一调度管理。

【关键词】离线下载;p2p;BT;ED2K;下载任务管理;下载引擎

1.引言

在传统下载方式中,一般是把文件由服务器端传送到客户端,例如FTP,HTTP等等。

由于是从一台服务器下载,服务器所提供的带宽是一定的,因而下载人越多速度越慢。但

是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造

成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,这样

即使你使用的是宽带网,通常也很难达到运营商许诺的最高下载速度,这里面固然有网络

的原因,但与服务器的限制也不无关系。

随着P2P技术的出现,用户可以充分利用网络带宽,人可以直接连接到其他用户的计

算机、交换文件,而不是像过去那样连接到服务器去浏览与下载,改变互联网现在的以大

网站为中心的状态、重返”非中心化”,并把权力交还给用户。目前常用的P2P工具有支

持BitTorrent协议的比特彗星BitComet,支持ED2K协议的电骡eMule。

但用户使用P2P工具下载电影、游戏大型资源,或者冷门资源时,用户就得下很久,

有时需要花费几天的时间,期间用户必须长期挂机以保证下载任务的不中断,给用户的设

备使用带来了很多不便和限制。

我们在此依托成熟的工具和技术,实现了一种离线下载的服务方案。将比特彗星

BitComet和电骡eMule运行在服务端,用户通过web页面向服务端提交下载请求,服

务端接受情况后,会根据下载请求的类型,分布将请求加载到这些P2P工具的中,生成下

载任务,由这些工具在服务端利用高速的带宽进行下载,或者由服务器挂机“代”用户下

载冷门资源。而用户的设备在成果提交完下载任务请求后,就可断开网络或者关机。用户

可以随时访问离线下载的服务页面,查询自己要求资源的下载进度,当看到下载完成后,

就可以一次性地取回下载文件,完成下载过程。

我们提供的离线下载服务,是帮助用户提供了一个下载代理,用户只需提交下载请求,

由我们的下载代理保持在线,帮助用户完成下载任务。而这些代理的实现,我们使用的是

比特彗星、电骡这样的成熟稳定工具,避免了完全从P2P底层协议进行开发,同时可以更

好地利用网络中的已有资源点。

2.技术方案原理及实现

离线下载原理如下:

(1)用户通过Web页面提交一个下载请求。