Запрос DHT-сервера

Я пытаюсь сделать простой запрос на сервер DHT.

Я пытаюсь сделать простой простой пример для проверки запросов к серверам, но я не получаю ответа от сервера ни в какой форме...

Маленький пример:

$socket = fsockopen("udp://router.bittorrent.com", 6881, $errno, $errstr, 3);
fwrite($socket, 'p'); $Head = fread($socket, 4);
$CheckStatus = socket_get_status($socket);      
if($CheckStatus["unread_bytes"] == 0)
{
    return 0;
}   
$do = 1;
while($do)
{
    $str = fread($socket,1);
    $stats .= $str;
    $status = socket_get_status($socket);
    if($status["unread_bytes"] == 0)
    {
        $do = 0;
    }
}
fclose($socket);

Информация о запросах на сервере DHT находится здесь: http://www.bittorrent.org/beps/bep_0005.html#dht-queries

Но я не понимаю, как это сделать с PHP. Это возможно? В чем проблема с моим кодом?


person Zenth    schedule 18.02.2012    source источник
comment
Какой-нибудь пример запроса DHT Torrent здесь?   -  person Zenth    schedule 20.02.2012
comment
Я бы посоветовал не использовать PHP для такого рода вещей, он не очень подходит для манипулирования двоичными данными, используемыми в реализации bittorrent kademlia. Что касается вашего запроса, p не является допустимым закодированным DHT-запросом.   -  person the8472    schedule 02.08.2012


Ответы (1)


Как упоминает the8472, ваш клиент отправляет p, что не является допустимым запросом. Чтобы увидеть допустимые форматы запросов, посмотрите здесь: bep 005

person gsk    schedule 20.08.2012