BitTorrent是一种新型共享软件方式,优势在于不限制下载带宽和联接线程仍能提供高速下载服务,下载的人越多,下载速度不下降反而更稳定,相比之下FTP仅能提供一定数目内的联接和有限的带宽(下载的人越多,速度越慢)
BitTorrent适合于提供10M以上的文件下载,小的文件可集中于同一目录统一提供下载
RMVB、AVI等类型的电影文件最适合通过BitTorrent方式共享,经一个多月的测试,对于600M以上电影,50K上传带宽(如ADSL)的服务器,同时提供下载的文件不要多于2个,100K上传带宽同时提供3、4个文件下载最合适,100K以上上传带宽可按此类推
A) 下载python(约8M)
http://www.python.org/ftp/python/2.3/Python-2.3a2.exe
安装到c:\python23
B)
安装BitTorrent服务器程序(约130k)
http://bitconjurer.org/BitTorrent/BitTorrent-3.1.zip
解压到c:\bittorrent-3.1
C)
在c:\bittorret-3.1目录建立三个批处理文件:
1.bat
c:\python23\python bttrack.py --port 6969 --dfile dstate
2.bat
c:\python23\python btmakemetafile.py c:\avi\demo.avi http://myiporhostsname:6969/announce
3.bat
c:\python23\python btdownloadheadless.py --url http://myiporhostsname/demo.avi.torrent --saveas c:\avi\demo.avi
D)
如果没有安装或运行WEB服务器,安装或运行WEB服务器
E)
假设本机的域名是demo.vip.com,WEB服务器目录是c:\httpd
要将c:\movies\thehours目录里的avi电影和字幕文件进行共享,执行如下步骤:
a.
执行1.bat
b.
将2.bat中的c:\avi\demo.avi改成c:\movies\thehours,将http://myiporhostsname改成http://demo.vip.com
执行2.bat
如果执行正常,应在c:\movies目录下生成thehours.torrent文件,将此文件拷到c:\httpd
c.
将3.bat中的http://myiporhostsname/demo.avi.tor...vi改成c:\movies
执行3.bat
如果执行正常,程序将读取文件,完成后显示percent done: 100.0的信息并不断刷新
执行完上述三步后你就可以发布你的共享文件。
BitTorrent工作原理,BitTorrent分为tracker和client两部分。
以发布一个软件为实例:
先安装一个tracker服务器,此服务器需要相对稳定的为client提供服务。
然后将要发布的软件打包成一个,或多个文件。用<btmakemetafile>程序对该文件进行分析btmakemetafile,会将该文件分成多个段和创建checksum信息以保证下载数据的正确性, btmakemetafile,会创建一个包含tracker服务器信息,文件分段和checksum信息的,以.torrent为扩展名的很小的文件,然后用<btdownloadheadless.py>程序发布第一个client, 每个client都会和tracker建立连接,因为第一个client为起始client,所以他必须包含完整的文件。
现在你可以发布.torrent文件了,当二个人(client2)开始下载的时候,会和tracker服务器建立联系,已取得已有client的信息(如client1),他会依照.torrent的文件划分规则开始向client1下载数据。
比如将发布的文件分为10段,这时他开始下在第一段,当client3下载的时候tracker会自动告诉他从client2下载文件的第一段,而从client1下载文件的其他段,以次类推,每个client可以同时从其他client那里下在他们已有的数据段,而下载的同时,也向其他client提供自己已下载的数据段,从而不仅提高了大家的下载速度也减轻了第一个release者的带宽压力。
附该软件的主页(所有源代码是开放式的)
http://bitconjurer.org/BitTorrent/index.html
开发环境
http://www.python.org
下载并安装
http://bitconjurer.org/BitTorrent/bittorrent-3.0.2.exe
他很小,不创建程序组,是一个插件,装完后就可以打开.torrent文件开始下载了