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='')