1.整理TCP三次握手、四次挥手图
三次握手
四次挥手
2.基于TCP开发一款远程CMD程序
客户端连接服务器后,可以向服务器发送命令
服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端
注意: 执行系统指令使用subprocess模块完成.
服务端
from socket import * import subprocess server=socket(AF_INET,SOCK_DGRAM) server.bind(('127.0.0.1',9003)) while True: #收消息 cmd,addr=server.recv(1024) print('用户命令----->',cmd) #逻辑处理 res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdin=subprocess.PIPE,stdout=subprocess.PIPE) stderr=res.stderr.read() stdout=res.stdout.read() #发消息 server.sendto(stderr,addr) server.sendto(stdout,addr) server.close()
客户端
from socket import * client=socket(AF_INET,SOCK_DGRAM) while True: msg=input('>>: ').strip() client.sendto(msg.encode('utf-8'),('127.0.0.1',9003)) data,addr=client.recv(1024) print(data.decode('utf-8'),end='')