Определить клиент подключен к какому порту - PullRequest
1 голос
/ 01 февраля 2012

У меня есть следующий код, и я хочу определить, в каком порту клиент подключен к фабрике.Как мне этого добиться?

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()

1 Ответ

3 голосов
/ 01 февраля 2012

Два адреса TCP-соединения, адрес клиента и адрес сервера, могут быть получены с помощью методов транспорта getHost и getPeer. Адрес «хоста» - это адрес локальной стороны соединения. «Одноранговый» адрес - это адрес другой стороны соединения. На сервере адрес хоста также является адресом порта, который принял соединение.

Вы можете прочитать о методах транспорта в документации Twisted API.

Например:

class SomeProtocol(Protocol):
    def connectionMade(self):
        print 'Connection made to', self.transport.getHost(),
        print 'from', self.transport.getPeer()
...