服务端
import subprocess
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1', 8081))
server.listen(5)
while True:
conn, client_addr = server.accept()
print('客户端的ip和端口', client_addr)
while True:
try:
data = conn.recv(1024)
if len(data) == 0: break
print('客户端发来信息:', data.decode('utf-8'))
obj = subprocess.Popen(
data.decode('utf-8'),shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
res = obj.stdout.read().decode('gbk')
if res:
conn.send(res.encode('utf-8'))
else:
conn.send('没有指令'.encode('utf-8'))
except Exception:
break
conn.close()
客户端
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('127.0.0.1', 8081))
while True:
msg = input('请输入指令:').strip()
if len(msg) == 0: continue
client.send(msg.encode('utf-8'))
data = client.recv(1024)
print(data.decode('utf-8'))
client.close()