import json
def sock_send_length(sock, data):
'''
在发送数据之前,先发送数据的长度。
'''
assert type(data) == bytes
sock.send(json.dumps({
'type': 'length',
'length': len(data),
}).encode())
assert sock.recv(1024).decode() == 'continue'
sock.send(data)
def sock_recv_length(sock):
'''
如果收到的数据包类型为 length,则再次接收一个指定长度的数据包并返回。
否则直接返回该数据包。
'''
data = json.loads(sock.recv(1024).decode())
if 'type' in data and data['type'] == 'length':
sock.send(('continue').encode())
return json.loads(sock.recv(int(data['length'])).decode())
return data
墨之科技,版权所有 © Copyright 2017-2027
湘ICP备14012786号 邮箱:ai@inksci.com