作业20200420

作业20200420

编写远程执行命令的CS架构软件

# 服务端

import socket
import subprocess

ip_port = ('127.0.0.1', 8080)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ip_port)
server.listen(5)

while 1:
    print('等待连接......')
    conn, addr = server.accept()
    print(addr)
    while 1:
        try:
            msg = conn.recv(1024)
            if not msg:
                break
            obj = subprocess.Popen(msg.decode('utf-8'), shell=True,
                                   stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            res = obj.stdout.read()
            res_error = obj.stderr.read()
            result = res or res_error
            conn.send(result)
        except Exception as e:
            print(e)
            break
    conn.close()
# 客户端
import socket

ip_port = ('127.0.0.1', 8080)

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ip_port)

while 1:
    msg = input('>>>:').strip()
    if msg == 'q':
        break
    if not msg:
        continue
    client.send(msg.encode('utf-8'))
    result = client.recv(1024)
    print(result.decode('gbk'))

client.close()
posted @ 2020-04-20 15:54  the3times  阅读(15)  评论(0)    收藏  举报