解决粘包-简单版本
服务端:import socketimport subprocessimport struct#简易版缺点:struct 的数据i需要在4以内,如果发送的数据较大,会超过I,无法发送。因此需要优化#创建套接字server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind(('192.168.43.177',8093))server.listen(5)while True: conn,addr = server.accept() while True: try: cmd = conn.recv(8086) if not cmd :break obj = subprocess.Popen(cmd.decode('utf-8'),shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout = obj.stdout.read() stderr = obj.stderr.read() #3.把命令的结果返回给客户端 #第一步:制作固定长度的报头 total_size = len(stdout)+len(stderr) header = struct.pack('i',total_size) print(stdout) conn