Twisted: как привязать сервер к указанному IP-адресу? - PullRequest
10 голосов
/ 20 апреля 2010

Я хочу, чтобы служба twisted (запускалась через twistd) прослушивала запрос TCP / POST на указанном порту с указанным IP-адресом. К настоящему времени у меня есть искаженное приложение, которое слушает порт 8040 на локальном хосте. Он работает нормально, но я хочу, чтобы он прослушивал только определенный IP-адрес, скажем, 10.0.0.78.

Как это сделать? Это фрагмент моего кода:

application = service.Application('SMS_Inbound')

smsInbound = resource.Resource()
smsInbound.putChild('75sms_inbound',ReceiveSMS(application))
smsInboundServer = internet.TCPServer(8001, webserver.Site(smsInbound))
smsInboundServer.setName("SMS Handling")
smsInboundServer.setServiceParent(application)

1 Ответ

13 голосов
/ 20 апреля 2010

То, что вы ищете, это аргумент interface для twisted.application.internet.TCPServer:

smsInboundServer = internet.TCPServer(8001, webserver.Site(smsInbound),
    interface='10.0.0.78')

(Который наследует от reactor.listenTCP(), поскольку все классы t.a.i.*Server действительно просто передают reactor.listenXXX для соответствующего протокола.)

...