2012-01-31 9 views
1

次のコードがあり、どのクライアントが工場に接続されているのかを検出したいと思います。それをどうすれば実現できますか? TCPコネクションのクライアントがどのポートに接続されているのですか

from twisted.internet import reactor 
conn = txredisapi.lazyRedisConnectionPool(reconnect = True) 
factory = STSFactory(conn) 
factory.clients = [] 

print "Server started" 
reactor.listenTCP(11000,factory) 
reactor.listenTCP(11001,factory) 
reactor.listenTCP(11002,factory) 
reactor.run() 

答えて

3

二つのアドレス、クライアントのアドレスとサーバアドレス、輸送のgetHostgetPeerメソッドを使用して取得することができます。 「ホスト」アドレスは、接続のローカル側のアドレスです。 「ピア」アドレスは、接続の相手側のアドレスです。サーバ上では、ホストアドレスは接続を受け入れたポートのアドレスでもあります。例えば

You can read about transport methods in the Twisted API documentation.

class SomeProtocol(Protocol): 
    def connectionMade(self): 
     print 'Connection made to', self.transport.getHost(), 
     print 'from', self.transport.getPeer() 
関連する問題