Почему я не могу структурировать ununign char и строку впоследствии в Python 3.x? - PullRequest
0 голосов
/ 05 мая 2018

Я делаю сервер на Python для своего проекта GMS 2 и пишу клиент в GameMaker. Но как-то, когда я использую только:

struct.unpack('B', data[:1])[0]

Это работает, но когда я пытаюсь отправить строку потом:

struct.unpack('Bs', data[:1])[0]

Это дает мне следующую ошибку:

mid = struct.unpack('Bs', data[:1])[0]
struct.error: unpack requires a buffer of 2 bytes

Это весь код, который я использую для получения данных:

import socket
import struct


UDP_IP = "127.0.0.1"
UDP_PORT = 5555


sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes

    msg_id = struct.unpack('Bs', data[:1])[0]
    print(msg_id)
    #if mid == 0:
       # struct.unpack('Bp', data[:1])[0]

И вот как я отправляю его в GameMaker:

buffer_seek(global.Buffer, buffer_seek_start, 0);
buffer_write(global.Buffer, buffer_u8, 0); //Sends which PACKET ID we should decode
buffer_write(global.Buffer, buffer_string, global.Username); //Sends username as a "buffer_string" type
network_send_udp_raw(socket,"127.0.0.1", 5555, global.Buffer, buffer_tell(global.Buffer));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...