¿Twisted Framework Server haciendo conexiones como un cliente?

En primer lugar, déjame mostrarte mi código y el error que devuelve:

print "before import" from twisted.internet import protocol # imports print "after protocol" from twisted.internet import reactor print "after reactor" from twisted.internet.endpoints import TCP4ServerEndpoint print "after import" class Echo(protocol.Protocol): """docstring for Echo""" def connectionMade(self): cADDR = self.clnt = self.transport.getPeer().host print "...Connection made with {0}".format(cADDR) def dataReceived(self, data): self.transport.write(data) class EchoFactory(protocol.Factory): """docstring for EchoFactory""" def buildProtocol(self, addr): return Echo() server = TCP4ServerEndpoint(reactor, 45002) server.listen(EchoFactory()) reactor.run() 

Como puede ver, creé algunas declaraciones de impresión para depurar exactamente qué importación está causando el problema. Ahora por el error:

 before import after protocol Traceback (most recent call last): File "C:\Users\Sa'id\Documents\Learning Programming\Python\Core Python Application Programming\Chapter 2 - Network Programming\Twisted\twisted_intro.py", line 9, in  from twisted.internet import reactor File "C:\Python27\lib\site-packages\twisted\internet\reactor.py", line 39, in  default.install() File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 196, in install reactor = SelectReactor() File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 72, in __init__ posixbase.PosixReactorBase.__init__(self) File "C:\Python27\lib\site-packages\twisted\internet\base.py", line 499, in __init__ self.installWaker() File "C:\Python27\lib\site-packages\twisted\internet\posixbase.py", line 286, in installWaker self.waker = self._wakerFactory(self) File "C:\Python27\lib\site-packages\twisted\internet\posixbase.py", line 81, in __init__ client.connect(server.getsockname()) File "C:\Python27\lib\socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 10061] No connection could be made because the target machine actively refused it >>> 

Por alguna razón, mi servidor Twisted está tratando de hacer conexiones, cuando en realidad debería ser la que está esperando las conexiones, no las conexiones. Y como puede ver en el error, se imprime justo antes de la importación del reactor , pero no después, por lo que el reactor es realmente el problema aquí. He publicado esto en otro sitio web sin mucho éxito, pero el responsable dijo que era porque el reactor estaba tratando de configurar un _SocketWaker y algo lo _SocketWaker . Dijo que apagar el firewall lo haría funcionar, pero después de intentarlo, se devolvió el mismo error. Solo una nota, el puerto en el que alojo este servidor Echo() se reenvía, por lo que el puerto probablemente no sea el problema. Cualquier aporte seria muy apreciado.

Gracias.

En UNIX, Twisted configura un descriptor de archivos wewweb desde una canalización. Sin embargo, en Windows, las tuberías anónimas tienen varios problemas de implementación y discrepancias entre las diferentes versiones de Windows, por lo que utiliza un par de sockets. La creación de este par de sockets implica la conexión de nuevo a localhost, por lo que ciertas configuraciones de firewall demasiado agresivas pueden desencadenar esta área.