Tôi cần truyền một mảng có độ dài thay đổi trong đó mỗi phần tử là một bộ gồm hai số nguyên. Ví dụ:Python: Cách truyền các mảng chiều dài biến đổi qua kết nối mạng
path = [(1,1),(1,2)]
path = [(1,1),(1,2),(2,2)]
Tôi đang cố gắng sử dụng gói và giải nén, tuy nhiên, vì mảng có độ dài khác nhau nên tôi không biết cách tạo định dạng sao cho cả hai đều biết định dạng. Tôi đã cố gắng để biến nó thành một chuỗi duy nhất với delimiters, chẳng hạn như:
msg = 1&1~1&2~
sendMsg = pack("s",msg) or sendMsg = pack("s",str(msg))
ở phía bên nhận:
path = unpack("s",msg)
nhưng điều đó chỉ in 1 trong trường hợp này. Tôi cũng đang cố gắng gửi 4 số nguyên, gửi và nhận tiền phạt, miễn là tôi không bao gồm chuỗi thừa đại diện cho đường dẫn.
sendMsg = pack ("hhhh", p.direction [0], p.direction [1], p.id, p.health)
ở phía bên nhận:
x,y,id,health = unpack("hhhh",msg)
Việc đầu tiên là để minh họa như tôi đã cố gắng để gửi định dạng "hhhhs", nhưng một trong hai cách con đường không đi qua đúng cách.
Cảm ơn sự giúp đỡ của bạn. Tôi cũng sẽ xem xét việc gửi một mảng 2D của int, nhưng tôi không thể tìm ra cách để gửi các cấu trúc phức tạp hơn này trên mạng.
Cảm ơn sự giúp đỡ của bạn.
Như Mark Byers đề cập, dưa không an toàn nếu bạn đang sử dụng trên mạng mà bạn không muốn bất kỳ ai gửi dữ liệu để có thể chạy mã tùy ý trên máy của người nhận. http://nadiana.com/python-pickle-insecure – keturn
Tôi đã không nhận thức được những khả năng "khai thác" này. – systempuntoout