Estoy intentando crear un cliente/servidor usando Twisted. Me gustaría crear un daemon, que se conectará a otro servidor como cliente y actuará como servidor para otros clientes. Tengo algo de escritura como la wich Creo describir mi problema:Crear cliente/servidor con Twisted
server = sys.argv[1]
control_port = 8001
class ControlClient(protocol.Protocol):
def makeConnection(self, transport):
[some code here -snip-]
self.firstOrder(order, transport)
def firstOrder(self, action, transport):
self.t = transport
self.t.write(action + "\0")
def sendOrder(self, action):
self.t.write(action + "\0")
def dataReceived(self, data):
[some code here -snip-]
[HERE I WANT TO SEND DATA TO CLIENTS CONNECTED TO MY TWISTED SERVER, USING CONTROL SERVER]
class ControlServer(ControlClient):
def dataReceived(self, data):
print "client said " + data
def makeConnection(self, transport):
self.t = transport
self.t.write("make connection")
print "make connection"
def sendData(self, data):
self.t.write("data")
class ClientFactory(protocol.ClientFactory):
protocol = ControlClient
def clientConnectionFailed(self, connector, reason):
print "Connection failed - goodbye!"
reactor.stop()
def clientConnectionLost(self, connector, reason):
print "Connection lost - goodbye!"
reactor.stop()
class ServerFactory(protocol.ServerFactory):
protocol = ControlServer
def main():
c = ClientFactory()
reactor.connectTCP(server, control_port, c)
s = ServerFactory()
reactor.listenTCP(9000, s)
reactor.run()
if __name__ == '__main__':
main()
Como se puede ver, me gustaría enviar (como un servidor) algunos datos recibidos (como cliente). Mi problema es, por supuesto, que mi ServerControl no está instanciado en mi ClientControl, por lo que no tengo acceso al transporte que se requiere para enviar datos a los clientes.
Lo siento si no soy comprensible, soy nuevo en Python y retorcido y sin Inglés es mi idioma principal :( no dude en preguntar si falta algo!
Gracias de antemano por cualquier ayuda =)
Hola, gracias por su respuesta, intentaré esto. Parece ser la buena solución. – tirlototo
Bueno, de nuevo gracias por su ayuda, ¡funciona muy bien! Que tengas un buen día =) – tirlototo
ahah eres un desarrollador retorcido; =) – tirlototo