Servidor Python "Normalmente solo se permite un uso de cada dirección de socket"
Estoy tratando de crear un servidor muy básico en Python que escucha en un puerto, crea una conexión TCP cuando un cliente intenta conectarse, recibe datos, envía algo de vuelta, luego escucha de nuevo (y repite el proceso indefinidamente). Esto es lo que tengo hasta ahora:
from socket import *
serverName = "localhost"
serverPort = 4444
BUFFER_SIZE = 1024
s = socket(AF_INET, SOCK_STREAM)
s.bind((serverName, serverPort))
s.listen(1)
print "Server is ready to receive data..."
while 1:
newConnection, client = s.accept()
msg = newConnection.recv(BUFFER_SIZE)
print msg
newConnection.send("hello world")
newConnection.close()
A veces esto parece funcionar perfectamente bien (si apunto mi navegador a "localhost: 4444", el servidor imprime la solicitud HTTP GET y la página web imprime el texto "hola mundo"). Pero recibo esporádicamente el siguiente mensaje de error cuando intento iniciar el servidor después de cerrarlo en los últimos minutos:
Traceback (most recent call last):
File "path\server.py", line 8, in <module>
s.bind((serverName, serverPort))
File "C:\Python27\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted
Estoy programando en Python usando Windows 7. ¿Alguna idea sobre cómo solucionar esto?