BitTorrent

Format BEncoding

Les fichiers Torrent contenant les informations sur les données et la manière de les télécharger, sont encodés au format BEncoding. Cet encodage est par ailleurs utilisé au niveau de la réponse du Tracker suite à une requête d'un client.

Ce format fonctionne par type de valeurs. Les différents types étant :

Integer

Les entiers sont encodés de la manière suivante "iValeur de l'entier encodé en base 10e"

La valeur entière est entourée par un "i" et par un "e". Il est possible d'encoder des valeurs négatives en mettant un "-" devant. Il n'est pas possible de préfixer une valeur avec des "0".


	i128e correspond à 128
i-128e correspond à -128

String

Les chaînes de caractères sont encodées de la manière suivante : Longueur de la chaîne de caractère:La chaîne de caractère

4:spam correspond à la chaîne de caractère "spam"

List

Les listes permettent de contenir un ensemble de valeur. Ces valeurs peuvent être des Integers, des Strings, des List, des Dictionary.
Les listes sont préfixées par "l" et terminé par "e".

l4:spam4:eggse correspond à une liste contenant 2 chaînes de caractères ["spam", "eggs"]

Dictionary

Les dictionnaires permettent comme les listes de stocker différents types de valeurs (Integers, Strings, List, Dictionary).
La différence est qu'il s'agit d'un stockage de type "clé", "valeur". Les clés sont des valeurs de type String. Les dictionnaires sont préfixés par "d" et terminé par "e".


	d3:cow3:moo4:spam4:eggse correspond au dictionnaire { "cow" => "moo", "spam" => "eggs" }
d4:spaml1:a1:bee correspond au dictionnaire qui associe à la clé "spam" un dictionnaire de chaînes de caractères { "spam" => ["a", "b"] }

Valid XHTML 1.0!