Подтвердить что ты не робот

Twisted: как привязать сервер к указанному IP-адресу?

Я хочу иметь витую службу (запущенную через twistd), которая слушает запрос TCP/POST на указанном порту по указанному IP-адресу. К настоящему времени у меня есть скрученное приложение, которое слушает порт 8040 на localhost. Он работает нормально, но я хочу, чтобы он слушал только определенный 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)
4b9b3361

Ответ 1

То, что вы ищете, это аргумент 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 для соответствующего протокола.)