本文共 2054 字,大约阅读时间需要 6 分钟。
import socketimport jsonimport structimport timebuffer = 1024q2 = queue.Queue()file_path = os.path.join(os.getcwd(), 'test.json')
with open(file_path, 'r') as f: data_json = json.load(f) q2.put(data_json) f.close()
q2.put('{"a":2,"b":2,"d":1212121}')q2.put('{"a":3,"b":2}')q2.put('{"a":5,"b":2}')q2.put('{"a":5,"b":2}') sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sk.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 44455))sk.listen(1) conn, addr = sk.accept()while True: if not q2.empty(): data_str = q2.get() print('发送data_str') json_data = json.dumps(data_str) byte_data = json_data.encode('utf-8') data_len = len(byte_data) pack_len = struct.pack('i', data_len) print(pack_len) conn.send(pack_len) i = 0 while data_len > 0: print(data_len) if data_len >= buffer: content = byte_data[i * buffer : (i + 1) * buffer] conn.send(content) data_len -= buffer i += 1 else: content = byte_data[i * buffer :] conn.send(content) data_len = 0 break
import socketimport structsk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sk.connect(('127.0.0.1', 44455)) buffer = 1024while True: pack_len = sk.recv(4) print(pack_len) if pack_len: data_len = struct.unpack('i', pack_len)[0] print(data_len) content = b'' while data_len > 0: print(data_len) if data_len >= buffer: content_temp = sk.recv(buffer) content += content_temp data_len -= buffer else: content_temp = sk.recv(data_len) content += content_temp data_len = 0 break print(content.decode('utf-8')) 转载地址:http://phafk.baihongyu.com/