Bencode — формат, используемый p2p-системой распространения файлов BitTorrent для хранения и передачи свободно структурированных данных.
Включает четыре типа данных: строка байтов, целое число, список (массив), словарь (ассоциативный массив).
Bencode используется в файлах .torrent, которые представляют собой словарь в формате Bencode.
Кодирование Bencode использует символы ASCII как разделители и цифры. Целое число записывается так: i<число в десятичной системе счисления>e. Число не должно начинаться с нуля, но число ноль записывается как i0e. Отрицательные числа записываются со знаком минуса перед числом. Число −42 будет выглядеть так «i-42e». Строка байт: <размер>:<содержимое>. Размер — это положительное число в десятичной системе счисления, может быть нулём; содержимое — это непосредственно данные, представленные цепочкой байт, которые не подразумевают никакой символьной кодировки. Строка «spam» в этом формате будет выглядеть так «4:spam». Список (массив): l<содержимое>e. Содержимое включает в себя любые типы Bencode, следующие друг за другом. Список, состоящий из строки «spam» и числа 42, будет выглядеть так: «l4:spami42ee». Словарь: d<содержимое>e. Содержимое состоит из пар ключ-значение, которые следуют друг за другом. Ключи могут быть только строкой байт и должны быть упорядочены в лексикографическом порядке. Значение может быть любым элементом Bencode. Если сопоставить ключам «bar» и «foo» значения «spam» и 42, получится: «d3:bar4:spam3:fooi42ee». (Если добавить пробелы между элементами, будет легче понять структуру: .)
Ссылки File_Bittorrent2 — реализация Bencode/decode на PHP расширение Bencode для PHP Оригинальная реализация BitTorrent на Python как отдельный пакет BEncode Editor: Windows-GUI-редактор BEncode Torrent File Editor: кроссплатформенный GUI-редактор BEncode разбор Bencode на Java потоковый парсер формата Bencode, сериализующий bencoded объекты в объекты Java (1.8) — Integer, String, LinkedList Создание и редактирование torrent-файлов.
Категория:BitTorrent