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?

Respuestas a la pregunta(6)

Su respuesta a la pregunta