BitTorrent客户端教程

0 简介:

Bencode是BitTorrent在传输数据结构的编码方式。

常用在.torrent文档中,比纯二进制编码效率低,但是结构简单,而且不受到字节存储顺序的影响,对跨平台很重要。

磁链和种子的优缺点:
其实磁力链接本身是没什么用的,不管在任何软件的磁链下载中,都必须要先通过磁链得到种子文件,再使用种子文件进行常规下载。因为种子文件才有分片信息,文件大小,文件名等必要信息。所以可以看出,种子其实是必不可少的,那你可能会觉得奇怪,为什么还需要磁链呢?这是因为现在对BT的封锁太严重,传播种子并不是那么简单的事了,动不动就被和谐了,所以磁链的作用就是便于传输,因为磁链就是一个小小的文本,而种子确是一个文件呢~
总结一下他们的优缺点:
A.种子:稳定性高,信息多,不便于传播扩散
B.磁力链接:仍需要先获得种子,不稳定,可能在某时刻不能获取,但是很便于扩散。

有四种数据形态:

string 字符串
integer 整数
list 列表
dictionary字典表

1.Bencode编码格式

1.1 string字符串

1
2
3
5:hello
//<字符串长度>:<字符串>
//hello

1.2 integer整数

1
2
3
i1234e
//i<整数>e
//1234

1.3 list列表

1
2
l5:hello5:worldi1234ee
//l[data1][data2]...e

1.4 dictionary字典

1
2
d7:balancei1000e4:coin3:btce
//d[key1][value1][key2][value2]...e

key必须是string而且按照字母顺序排序