转自:http://www.cnblogs.com/miao31/p/3332819.html
DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO
数据处理程序开源地址:https://github.com/h31h31/H31DHTMgr
DHT系列文章:
--------------------------------------------------------------------------------------------------------------------
看懂此文章需要提前看明白上面的系列文章,还需要你有TCP网络编程和bencode编码方法基础上,如果都看不明白,可以到娱乐区http://h31bt.com 去看看,休息下...
在介绍了这么多期文章后,最后介绍BT网络里面一个比较重要种子下载协议,方便大家知道如何从DHT网络直接下载种子的问题.
先说下我们目前下载电影等文件是如何下载的,比如我们有个BT种子,就可以去下载对应的文件,但如果我们只有个文件名字,如何去找BT种子呢?
首先我们可以去 http://h31bt.com 去通过搜索得到磁连接,然后就由此字符串去下载对应的种子文件和电影等信息,但如果没有网站让你下载种子,我们又当如何去搜索这个种子呢?
目前我们下载BT种子有两种方式:
- 通过HTTP直接从WEB服务器上下载,这种直接方便,比如从迅雷服务器上下载种子,
- 再就是通过BT软件从网络里面去获取BT网络里面专门有个下载种子的协议文件,只能下载种子,然后种子下载好后就可以交给BT软件来下载数据了.
如何从DHT网络下载种子,必须先看两个协议文章:
http://www.bittorrent.org/beps/bep_0009.html
http://www.bittorrent.org/beps/bep_0010.html
这里面有介绍,但还是需要说明一下如何操作的流程方便大家更好的理解.
我们的代码流程必须还是基于 DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO 之上,因为是从DHT网络里面获取数据,
需要我们在此之上操作后续流程.
之前的DHT有SEARCH的相关代码来搜索这个HASH对应的哪些IP在提供下载.