基于TCP协议的远程终端控制并发socketserver实现以及粘包问题处理
# 客户端 # -*- coding: utf-8 -*- import socketserver import struct import json import subprocess class MyTcpHandler(socketserver.BaseRequestHandler): def handle(self): while True: try: cmd = self.request.recv(1024) if not cmd: break print(cmd.decode('utf-8')) obj = subprocess.Popen(cmd.decode('utf-8'), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout = obj.stdout.read() stderr = obj.stderr.read() # 制作报头 header_dic = { 'file_name': cmd.decode('utf-8'), 'data_size': len(stdout) + len(stderr) } header_json = json.dumps(header_dic) header_bytes = header_json.encode('utf-8') #