服务端
# 服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端
import subprocess
import socket
server = socket.socket()
server.bind(('127.0.0.1', 8888))
server.listen()
socket_obj, address = server.accept()
while True:
cmd = socket_obj.recv(1024).decode('utf8')
# 执行cmd命令
obj = subprocess.Popen(
# cmd命令
cmd,
# Shell = True
shell=True,
# 返回正确结果参数
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
# 获取执行cmd命令的二进制数据结果
res = obj.stdout.read() + obj.stderr.read()
socket_obj.send(res)
客户端
import socket
client = socket.socket()
client.connect(('127.0.0.1', 8888))
while True:
cmd = input('请输入cmd命令:')
client.send(cmd.encode('utf8'))
# 解码服务端执行cmd命令后的二进制数据结果
res = client.recv(1024).decode('gbk')
print(res)