Мне нужно передать массив переменной длины, в котором каждый элемент является кортежем из двух целых чисел. Как пример:
path = [(1,1),(1,2)]
path = [(1,1),(1,2),(2,2)]
Я пытаюсь использовать pack и unpack, однако, поскольку массив имеет разную длину, я не знаю, как создать такой формат, чтобы оба знали формат. Я пытался превратить его в одну строку с разделителями, например:
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", но в любом случае путь не проходит должным образом.
Спасибо за вашу помощь. Я также буду смотреть на отправку двумерного массива целых, но я не могу понять, как отправить эти более «сложные» структуры по сети.
Спасибо за помощь.