Bencode
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 1. listopadu 2019; ověření vyžaduje
1 úpravu .
Bencode je formát používaný systémem pro distribuci souborů BitTorrent p2p pro ukládání a přenos volně strukturovaných dat.
Zahrnuje čtyři typy dat:
- byte řetězec,
- celé číslo,
- seznam (pole),
- slovník (asociativní pole).
Bencode se používá v souborech .torrent , které jsou slovníkem ve formátu Bencode.
Kódování
Bencode používá znaky ASCII jako oddělovače a čísla.
- Celé číslo se zapisuje takto: i <desetinné číslo> e . Číslo nesmí začínat nulou, ale číslo nula se zapisuje jako i0e. Záporná čísla se píší se znaménkem mínus před číslem. Číslo -42 bude vypadat jako toto "i-42e".
- Bajtový řetězec: <velikost> : <obsah> . Velikost je kladné číslo v desítkové soustavě, může být nula; obsah jsou samotná data, reprezentovaná řetězcem bajtů, který neznamená žádné kódování znaků. Řetězec "spam" v tomto formátu bude vypadat jako "4:spam".
- Seznam (pole): l <obsah> e . Obsah zahrnuje všechny typy Bencode následující po sobě. Seznam složený z řetězce "spam" a čísla 42 by vypadal takto: "l4:spami42ee".
- Slovník: d <obsah> e . Obsah se skládá z párů klíč–hodnota, které na sebe navazují. Klíče mohou být pouze řetězcem bajtů a musí být seřazeny v lexikografickém pořadí . Hodnota může být libovolný prvek Bencode. Pokud namapujeme klíče "bar" a "foo" na hodnoty "spam" a 42, dostaneme: "d3:bar4:spam3:fooi42ee". (Pokud mezi prvky přidáte mezery, bude snazší porozumět struktuře: "d 3:bar 4:spam 3:foo i42e e" .)
Odkazy