Bencode

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Ivan386 (обсуждение | вклад) в 22:44, 17 сентября 2009 (Частичный приблизительный перевод английской статьи.). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Bencode — это формат используемый p2p системой распространения файлов BitTorrent для хранения и передачи свободно структурированных данных.

Включает в себя четыре типа данных:

  • строка байт,
  • целое число,
  • список (массив),
  • словарь.

Bencode используется в .torrent файлах. Файл представляет из себя словарь в Bencode формате.

Кодирование

Bencode использует ASCII символы как разделители и цифры.

  • Целое число записывается так i<число в base 10 формате>e. Отрицательные числа записываются с знаком минуса перед числом, числа не должны начинаться с нуля если значение числа не 0. Число 42 будет выглядеть так "i42e".
  • Строка байт <размер>:<содержимое>. Размер это число в base 10 формате; Содержимое это непосредственно данные представленные цепочкой байт. Строка "spam" в этом формате будет выглядеть так "4:spam".
  • Список (массив) l<содержимое>e . Содержимое включает в себя любые Bencode типы следующие друг за другом. Список состоящий из строки "spam" и числа 42 будет выглядеть так: "l4:spami42ee".
  • Словарь d<содержимое>e. Содержимое состоит из пар Ключ-Значение которые следуют друг за другом. Ключ может быть только строкой байт. Значение может быть любым Bencode элементом. Если сопоставить значениям 42 и "spam" ключи "foo" и "bar" получится: "d3:bar4:spam3:fooi42ee". (Если добавить пробелы между элементами можно будет легче понять структуру: "d 3:bar 4:spam 3:foo i42e e".)