socket real español create all python linux sockets tcpserver

real - socket python 3 español



SocketServer.ThreadingTCPServer: no se puede vincular a la dirección después del reinicio del programa (2)

En este caso particular, se .setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) desde la clase TCPServer cuando se establece la opción allow_reuse_address . Así que pude resolverlo de la siguiente manera:

httpd = SocketServer.ThreadingTCPServer((''localhost'', port), CustomHandler, False) # Do not automatically bind httpd.allow_reuse_address = True # Prevent ''cannot bind to address'' errors on restart httpd.server_bind() # Manually bind, to support allow_reuse_address httpd.server_activate() # (see above comment) httpd.serve_forever()

De todos modos, pensé que esto podría ser útil. La solución diferirá ligeramente en Python 3.0

Como seguimiento de bloqueos no-bind-to-address-after-socket-program-crashes , estaba recibiendo este error después de reiniciar mi programa:

socket.error: [Errno 98] Dirección ya en uso

En este caso particular, en lugar de usar un socket directamente, el programa está comenzando su propio servidor TCP con subprocesos:

httpd = SocketServer.ThreadingTCPServer((''localhost'', port), CustomHandler) httpd.serve_forever()

¿Cómo puedo solucionar este mensaje de error?


La solución anterior no funcionó para mí pero esta sí:

SocketServer.ThreadingTCPServer.allow_reuse_address = True server = SocketServer.ThreadingTCPServer(("localhost", port), CustomHandler) server.serve_forever()