2010-04-20 24 views
10

Quiero tener un servicio de trenzado (iniciado a través de twistd), que escucha a la solicitud/POST TCP en un puerto especificado en una dirección IP específica. Por ahora tengo una aplicación retorcida que escucha el puerto 8040 en localhost. Está funcionando bien, pero quiero que solo escuche una cierta dirección IP, digamos 10.0.0.78.Twisted: cómo vincular un servidor a una dirección IP especificada?

Cómo manejar ese? Este es un fragmento de mi código:

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) 

Respuesta

13

Lo que estamos buscando es el argumento para interfacetwisted.application.internet.TCPServer:

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

(que hereda de reactor.listenTCP(), ya que todas las clases t.a.i.*Server realmente sólo hacia adelante a reactor.listenXXX para el protocolo correspondiente.)

Cuestiones relacionadas