Хотел я через сокеты в Python передавать массив каждый раз при получении данных от сервера, то есть, клиент подключается к серверу и получает некий массив, массив в сервере, был завернут в
pickle.dumps
, а в клиенте мы получаем массив при помощи
pickle.loads
, но при этом вызывается ошибка.
Код сервера:
import socket
import pickle
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("127.0.0.1", 5467))
class Parser:
pass
citys = ["Moscow", "New-York", "Paris", "London", "Chikago"]
if __name__ == "__main__":
server.listen()
parser = Parser()
data = pickle.dumps([citys, parser])
while True:
user, address = server.accept()
user.send(data)
Код клиента:
import socket
import pickle
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 5467))
new_data = client.recv(65507)
data = pickle.loads(new_data)
print(data)
Но выдает вот такую ошибку:
Traceback (most recent call last):
File "C:\Users\123\Desktop\client.py", line 8, in <module>
data = pickle.loads(new_data)
AttributeError: Can't get attribute 'Parser' on <module '__main__' from 'C:\\Users\\123\\Desktop\\client.py'>