问题是,如果腌制数据的大小> 4096,您只会得到腌制数据的第一部分(因此,
pickle data was truncated您得到的消息)
您必须附加数据并仅在接收完成后对其进行酸洗,例如:
data = b""while True: packet = s.recv(4096) if not packet: break data += packetdata_arr = pickle.loads(data)print (data_arr)s.close()
增加字节对象不是很有效,但是最好将部分存储在对象列表中
join。更快的变体:
data = []while True: packet = s.recv(4096) if not packet: break data.append(packet)data_arr = pickle.loads(b"".join(data))print (data_arr)s.close()



