Как я создаю скрученный сервер, это - также клиент? Я хочу, чтобы реактор послушал, в то время как одновременно это может также быть использование для соединения с тем же экземпляром сервера, который может также соединиться и послушать.
Call reactor.listenTCP
and reactor.connectTCP
. Вы можете иметь столько различных типов соединений - серверов или клиентов - сколько захотите.
Например:
from twisted.internet import protocol, reactor
from twisted.protocols import basic
class SomeServerProtocol(basic.LineReceiver):
def lineReceived(self, line):
host, port = line.split()
port = int(port)
factory = protocol.ClientFactory()
factory.protocol = SomeClientProtocol
reactor.connectTCP(host, port, factory)
class SomeClientProtocol(basic.LineReceiver):
def connectionMade(self):
self.sendLine("Hello!")
self.transport.loseConnection()
def main():
import sys
from twisted.python import log
log.startLogging(sys.stdout)
factory = protocol.ServerFactory()
factory.protocol = SomeServerProtocol
reactor.listenTCP(12345, factory)
reactor.run()
if __name__ == '__main__':
main()