

#server.py
from socket import *
import subprocess
back_log = 5
buffer_size = 1024
ip_port = ("127.0.0.1", 8000)
cmd_server = socket()
cmd_server.bind(ip_port)
cmd_server.listen(back_log)
while True:
sock, addr = cmd_server.accept()
while True:
try:
cmd_msg = sock.recv(buffer_size)
print(cmd_msg)
if not cmd_msg: continue
print("收到来自%s客户端的命令为%s" % (addr, cmd_msg.decode("UTF8")))
res = subprocess.Popen(cmd_msg.decode("UTF8"),
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
err = res.stderr.read()
if err:
cmd_res = err
else:
cmd_res = res.stdout.read()
if not cmd_res:
cmd_res = "执行成功!".encode("GBK")
except Exception as e:
print(e)
break
sock.send(cmd_res)
cmd_server.close()
#client.py
from socket import *
back_log = 5
buffer_size = 1024
ip_port = ("127.0.0.1", 8000)
cmd_client = socket()
cmd_client.connect(ip_port)
while True:
cmd = input(">>>:").strip()
if not cmd: continue
if cmd == "quit": break
cmd_client.send(cmd.encode("UTF8"))
msg_get = cmd_client.recv(buffer_size)
print(msg_get.decode("GBK"))
cmd_client.close()