Serwer Pythona „Zwykle dozwolone jest tylko jedno użycie każdego adresu gniazda”

Próbuję utworzyć bardzo prosty serwer w Pythonie, który nasłuchuje na porcie, tworzy połączenie TCP, gdy klient próbuje się połączyć, odbiera dane, wysyła coś z powrotem, a następnie nasłuchuje ponownie (i powtarza proces w nieskończoność). Oto, co mam do tej pory:

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()

Czasami wydaje się, że działa to doskonale (jeśli wskazuję przeglądarkę na „localhost: 4444”, serwer drukuje żądanie HTTP GET, a strona internetowa drukuje tekst „witaj świecie”). Ale sporadycznie pojawia się następujący komunikat o błędzie, gdy próbuję uruchomić serwer po zamknięciu go w ciągu ostatnich kilku minut:

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

Programuję w Pythonie za pomocą Windows 7. Jakieś pomysły na to, jak to naprawić?

questionAnswers(6)

yourAnswerToTheQuestion