Hola, tengo una duda, estoy aprendiendo a utilizar sockets en python, y lo que estoy intentando es, que el cliente se conecte al programa servidor y desde el servidor yo poder ejecutar comandos en la computadora cliente y esta me devuelva los resultados
estoy usando la biblioteca subprocess para ejecutar el comando y almacenar el resultado en una variable pero luego de enviarla el servidor la recibe de esta manera:
Quiero saber como puedo darle formato para que me lo muestre correctamente, estoy intentando ejecutar el comando dir en windows
Codigo Cliente:
import socket
import subprocess
def ejecutar_comando(command):
return subprocess.check_output(command, shell=True)
HOST = 'localhost'
PORT = 6123
cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cliente.connect((HOST,PORT))
while True:
command = cliente.recv(1024)
command = command.decode('utf-8')
resultados_comando = ejecutar_comando(command)
cliente.send(resultados_comando)
cliente.close()
Código Servidor:
import socket
HOST = 'localhost'
PORT = 6123
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()
print("Esperando conexiones...")
conn, addr = server.accept()
print("Conexión establecida con" + str(addr))
while True:
command = input("Shell<<<:")
conn.send(command.encode('utf-8'))
resultado_comando = conn.recv(1024)
print(resultado_comando)
conn.close()