Мне нужно передать массив разной длины, в котором каждый элемент представляет собой кортеж из двух целых чисел. Например:
path = [(1,1),(1,2)]
path = [(1,1),(1,2),(2,2)]
Я пытаюсь использовать упаковку и распаковку, однако, поскольку массив имеет разную длину, я не знаю, как создать формат, чтобы оба знали формат. Я пытался превратить его в одну строку с разделителями, например:
msg = 1&1~1&2~
sendMsg = pack("s",msg) or sendMsg = pack("s",str(msg))
на принимающей стороне:
path = unpack("s",msg)
но это просто печатает 1 в этом случае. Я также пытался отправить 4 целых числа, которые отправляются и получаются нормально, если я не включаю дополнительную строку, представляющую путь.
sendMsg = pack("hhhh",p.direction[0],p.direction[1],p.id,p.health)
на принимающей стороне:
x,y,id,health = unpack("hhhh",msg)
Первый был для иллюстрации, поскольку я пытался отправить формат «hhhhs», но в любом случае путь не проходит должным образом.
Спасибо за помощь. Я также рассмотрю отправку 2D-массива целых чисел, но я не могу понять, как отправлять эти более «сложные» структуры по сети.
Спасибо за помощь.