Я пытаюсь преобразовать код PHP в python.
Все значения отправляются в сетевом порядке байтов (с прямым порядком байтов).
По сути, запрос вспецификация протокола
и ответ
Соответствующий код PHP ( соответствующий DOC ):
$transaction_id = mt_rand(0,65535);
$current_connid = "\x00\x00\x04\x17\x27\x10\x19\x80";
$fp = fsockopen($tracker, $port, $errno, $errstr);
$packet = $current_connid . pack("N", 0) . pack("N", $transaction_id);
fwrite($fp,$packet);
Я пытаюсь найти соответствующий код ( для doc ) в python:
transaction_id = random.randrange(1,65535)
packet = "\x00\x00\x04\x17\x27\x10\x19\x80"
packet = packet + struct.pack("i", 0) + struct.pack("i", transaction_id)
clisocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
clisocket.sendto(packet, ("tracker.istole.it", 80))
В ответе я должен получить тот же транзакционный_идентификаторЯ отправил запрос, который я не получаю.Итак, я думаю, я не упаковываю, используя правильный формат.
Кроме того, документация по Python не так ясна, как в PHP.Протокол определяет использование формата Big Endian и документа PHP, в котором четко указано, что именно для Big-Endian.
К сожалению, я не мог понять, какой формат использовать в python.Пожалуйста, помогите мне в выборе формата Corrent.
РЕДАКТИРОВАТЬ: Не получая никаких ответов, поэтому я бы сказал больше.возвращается тот же INTEGER.