作业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()

浙公网安备 33010602011771号