如何编写也是客户端的扭曲服务器?

时间:2010-07-18 09:33:10

标签: python twisted

如何创建也是客户端的扭曲服务器? 我希望反应堆能够监听,同时它也可以用来连接同一个服务器实例,它也可以连接和监听。

1 个答案:

答案 0 :(得分:15)

致电reactor.listenTCPreactor.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()