直接像下面这样写,可能会收到多余的数据
sk.recv(1000)
正确的做法是用json,struct封装待发送的数据
1 首先用json创建好本次数据的信息,报头
2 获得报头信息,使用struct封装然后发送
3 再发送json数据
4 再发送最终的数据
header_dic = {'total_size': len(data.encode())}
header_json = json.dumps(header_dic)
# 构造json大小
header_bytes = header_json.encode()
# 发送报头
sk.send(struct.pack('i', len(header_bytes)))
# 发送json
sk.send(header_bytes)
# 再发送数据
sk.send(data.encode())