第三版 远程操控服务器简单版
server
#服务端
import socket
import subprocess
phone = socket.socket()
phone.bind(('127.0.0.1',8848))
phone.listen(5)
while 1:
conn, addr = phone.accept()
print(f'{addr}连接成功......')
while 1:
try:
data = conn.recv(1024)
if data.decode("utf-8").upper() == 'Q':
print('客户端正常退出程序!')
break
obj = subprocess.Popen(data.decode('utf-8'),
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
result = obj.stdout.read() + obj.stderr.read()
conn.send(result)
except ConnectionResetError:
print('客户端异常退出程序或者网络中断!')
break
conn.close()
phone.close()
client
#客户端
import socket
phone = socket.socket()
phone.connect(('127.0.0.1',8848))
print('与服务连接成功......')
print('输入 Q/q 退出程序。')
while 1:
data = input('>>>:').strip()
if not data:
print('输入的内容不能为空!请重新输入。')
continue
if data.upper() == 'Q':
phone.send(data.encode('utf-8'))
print('退出程序!')
break
phone.send(data.encode('utf-8'))
name_data = phone.recv(1024)
print(f'来自服务器的消息:{name_data.decode("gbk")}')
phone.close()

浙公网安备 33010602011771号