day26work

三次握手

四次挥手

#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()

posted on 2019-10-17 15:30  shenblogs  阅读(94)  评论(0)    收藏  举报

导航