Linux BT下载(2)-B编码和种子文件

B编码

B编码是一种简洁的数据组织方式,支持4种数据类型:bytestring、integers、lists和dictionaries。
integers、lists、和dictionaries类型分别以字母i、l、d作为首定界符。以字母e作为尾定界符。
bytestrings类型不使用首/尾定界符,其格式为<十进制标示的字符串长度>:<字符串>,比如 4:spam 表示字符串“spam”。
整型的编码格式为:i<十进制的整型数>e,即B编码中的整型以i作为起始符,以e作为终结符,i为integer的 第一个字母,e为end的第一个字母。比如 i-3e 是整数-3的B编码,i0e 是0的B编码。需要注意的是 i03e不是合法的因为03是十六进制的。
列表的格式为:l<如何合法的类型>e,列表以1为起始符,以e为尾定界符,中间可以是任何合法的进过B编码的类型。例如: l4:spam4:eggse 表示两个字符串,一个是spam,另一个是eggs。
字典的格式为: d<关键字><值>e,字典以d开头,以e结尾,关键字是一个经过B编码的字符串,值是任何合法的B编码类型,在d和e之间可以出现多个关键字和值对。例如: d4:spaml3:aaa3:bbbee 是一个字典,关键字是spam,值是一个列表,列表中有两个字符串aaa和bbb。

种子文件的结构

以.torrent为后缀名的种子文件包含了共享文件的一些信息。种子文件事实上是一个B编码的字典,它有如下关键字:
Linux BT下载(2)-B编码和种子文件_第1张图片

info是最重要的一个关键字,其值是一个字典,该字典都包含如下的关键字:
Linux BT下载(2)-B编码和种子文件_第2张图片

你可能感兴趣的:(Linux,BT下载)