Я создаю bittorrent-клиент и пытаюсь сообщить одноранговым узлам, что мне нужно отключить, чтобы в конечном итоге получить куски.
Я отправляю одноранговые и заинтересованные сообщения одноранговым узлам, я ожидаю, что они отправятЯ получил ответное сообщение, но не смог его получить
Я в основном следую этой статье , в которой говорится, что вы должны отправить интересующее сообщение после создания рукопожатия (что я и сделалуспешно)
вот код, который я использую для создания заинтересованного сообщения
12 def generateinterested():
13 return struct.pack('>iB', 1, 2)
в качестве шестнадцатеричного дампа:
00000000: 00 00 00 01 02 .....
Отправка этого сообщения не получает ответа.Подобный вопрос говорит, что после рукопожатия (вместо заинтересованного) вы отправляете сообщение unchoke, которое противоречит исходной статье.
Я попытался сделать это, используя следующий код для создания сообщения unchoke
9 def generateunchoke():
10 return struct.pack('>iB', 1, 1)
в виде шестнадцатеричного дампа это:
00000000: 00 00 00 01 01 .....
Ни один из них не дал результата, что одноранговый сервер отправил обратно сообщение о снятии с очереди, как я ожидал.что я тут не так делаю?я должен отправить свое заинтересованное или отмененное сообщение после рукопожатия, чтобы получить полученное сообщение?
Я получаю противоречивые сообщения.2% времени, партнер отправит обратно unchoke.остальные 98% я жду более минуты и не получаю ответа.Почему это?
на тот случай, если вы не знакомы с сообщениями bittorrent здесь некоторая помощь