У меня есть скрипт, который подключается к серверу Minecraft, получает пакеты и отправляет пакеты.
Итак, я отправляю пакет «логин» и получаю пакет «логин». К сожалению, полученный логин-пакет закодирован (информация о кодировке здесь: http://wiki.vg/Protocol#0x01).
Полученный пакет входа в систему сохраняется в переменной с именем received_login_packet
. Мне нужно декодировать его, чтобы я мог получить отдельные биты данных, такие как тип пакета, размерность и т. Д. *
Я немного огляделся, но понятия не имею, как это сделать.
Вот некоторый код, если он помогает:
#encoding the packet to send
encuserlen = str(len(enc_user)) # enc_user is just my username
packfmt = '>bih%sshiibBB' % encuserlen
packetbytes = struct.pack(packfmt, 1, 28, len(data['user']), enc_user, 0, 0, 0, 0, 0, 0)
s.send(packetbytes)
time.sleep(2)
#login packet sent, waited for response
response = s.recv(1024) #this is the raw login response.
#it's encoded as detailed above. i want to decode it
Буду признателен за любую помощь, и, пожалуйста, не стесняйтесь сказать, если это не достаточно ясно.