Pitão. Redirecionar stdout para um soquete
Eu executo meu script no computador "A" e, em seguida, conecto ao computador "A" do computador "B" através do meu script. Enviei minha mensagem para o computador "A" e meu script a executou com a instrução 'exec ()'.
Quero ver o resultado da execução da minha mensagem no computador "A", através do soquete no computador "B". Eu tento mudarsys.stdout = socket_response
mas tem um erro: "O objeto Socket não possui atributo write ()"
Então, como redirecionar a saída padrão (para impressão ou exec ()) do computador "A" para o computador "B" através da conexão de soquete. "
Será algum tipo de 'interpretador python' no meu script.
DESCULPE, NÃO POSSO RESPONDER A MINHA PRÓPRIA PERGUNTA SEM REPUTAÇÃO
Obrigado a todos!
Eu uso de maneira simples, o que me aconselhou @ Torxed. Aqui está o meu código-macaco (é apenas um exemplo, não o meu script real)
#-*-coding:utf-8-*-
import socket
import sys
class stdout_():
def __init__(self, sock_resp):
self.sock_resp = sock_resp
def write(self, mes):
self.sock_resp.send(mes)
MY_IP = 'localhost'
MY_PORT = 31337
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Start server")
old_out = sys.stdout
srv.bind((MY_IP, MY_PORT))
srv.listen(0)
sock_resp, addr_resp = srv.accept()
new_out = stdout_(sock_resp)
sys.stdout = new_out
#sys.stdout = sock_resp ### sock_object has no attribute 'write'
while 1:
try:
a = sock_resp.recv(1024)
exec(a)
except socket.timeout:
#print('server timeout!!' + '\n')
continue
Liguei-me ao script com o Putty e envie "print 'abc'" e, em seguida, recebi a resposta 'abc'