Не получать полные данные через сокет в Python - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь отправить последовательную модель Keras через сокет, но я не получаю почти столько же бит, сколько отправляю.

Я пытался использовать sendall вместо send и попытался получить пакет одновременно, и он разделяется.

client.py

msg = pickle.dumps(self.output)
print('Size:', sys.getsizeof(msg))
self.client.send(msg)

server.py

data = []
received = 0
while True:
    packet = conn.recv(1024)
    received += sys.getsizeof(packet)
    print(packet)
    print(sys.getsizeof(packet), received)
    if packet: data.append(packet)
    if not packet or packet == b'' or sys.getsizeof(packet) < 1024:
        break
print(sys.getsizeof(data))
y = pickle.loads(b"".join(data))

Я ожидаючто received должен иметь тот же размер, что и sys.getsizeof(msg), за исключением того, что вместо этого он на тысячи бит меньше.

...