как отправить массив через сокет в python

У меня есть тип массива ([1,2,3,4,5,6],[1,2,3,4,5,6]) . Я должен отправить его через STREAM / TCP-сокет в python. Тогда я должен получить тот же массив на принимающей стороне.

2 Solutions collect form web for “как отправить массив через сокет в python”

Вы можете Сериализовать объект перед отправкой в ​​сокет и в конце приема Deserialize. Проверьте это

Сокеты – это потоки байтов, поэтому идеально подходит для написания вашего протокола (прочтите это )

Это базовый пример без протокола, и вы должны заботиться о буфере -> recv (). Если он слишком мал, ваши данные будут отрублены. Вот почему вы должны реализовать протокол, если вы отправляете неизвестный размер данных.

Клиент:

 import socket, pickle HOST = 'localhost' PORT = 50007 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) arr = ([1,2,3,4,5,6],[1,2,3,4,5,6]) data_string = pickle.dumps(arr) s.send(data_string) data = s.recv(4096) data_arr = pickle.loads(data) s.close() print 'Received', repr(data_arr) 

Сервер:

 import socket HOST = 'localhost' PORT = 50007 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() print 'Connected by', addr while 1: data = conn.recv(4096) if not data: break conn.send(data) conn.close() 
Python - лучший язык программирования в мире.