Цитата(boris_z @ 23.6.2009, 2:33)
Вот не понимаю (выделаны цифры и буквы которые в коде ) я не понимая по какому принципу берутся, ставлю от балды ?
потому и не работает
написано в спецификации:
Цитата
byte stringsByte strings are encoded as follows: <string length encoded in base ten ASCII>:<string data>
Note that there is no constant beginning delimiter, and no ending delimiter.
Example: 4:spam represents the string "spam"
строки. сначала идет число, которое означает длину строки. например "4:spam" значит что после двоеточия будет строка длиной в 4 байта. еще примеры: "8:announce", "13:announce-list", "32:http://somehost.com/announce.php".
Цитата
listsLists are encoded as follows: l<bencoded values>e
The initial l and trailing e are beginning and ending delimiters. Lists may contain any bencoded type, including integers, strings, dictionaries, and other lists.
Example: l4:spam4:eggse represents the list of two strings: [ "spam", "eggs" ]
списки. начинаються символом "l" (маленькая "L") и заканчиваються символом "e".
например запись вида "
l4:spam4:eggs
e" означет что задан список с двух елементов, первым из которых есть строка "spam", вторым - строка "eggs".
также есть еще целые числа:
Цитата
integers Integers are encoded as follows: i<integer encoded in base ten ASCII>e
The initial i and trailing e are beginning and ending delimiters. You can have negative numbers such as i-3e. You cannot prefix the number with a zero such as i04e. However, i0e is valid.
Example: i3e represents the integer "3"
т.е. числа задаються в виде "i<число_в_десятичной_системе>e". например запись вида "
i254
e" значит что задано число "254", "
i-872
e" - число "-872".
и словари:
Цитата
dictionaries Dictionaries are encoded as follows: d<bencoded string><bencoded element>e
The initial d and trailing e are the beginning and ending delimiters. Note that the keys must be bencoded strings. The values may be any bencoded type, including integers, strings, lists, and other dictionaries. Keys must be strings and appear in sorted order (sorted as raw strings, not alphanumerics). The strings should be compared using a binary comparison, not a culture-specific "natural" comparison.
Example: d3:cow3:moo4:spam4:eggse represents the dictionary { "cow" => "moo", "spam" => "eggs" }
Example: d4:spaml1:a1:bee represents the dictionary { "spam" => [ "a", "b" ] }
словари. в словарях сначала идет ключ, потом его значение. т.е. если есть выражение "
d3:cow3:moo4:spam4:eggse", ето значит что задан словарь, в котором ключ "cow" имеет значение "moo", а ключ "spam" имеет значение "eggs".
еще один пример: "
d4:spaml1:a1:bee". задан словарь, в котром ключ "spam" содержит список из двух елементов: "a" и "b".
на базе етого всего строится торент файл.
значением ключа "announce-list" должен быть список, елементы которого есть списками трекеров (список списков). например както так:
13:announce-listll80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307el32:http://somehost.com/announce.phpee