私はPythonで非常に基本的なサーバーを作成しようとしています。このサーバーは、ポートでリッスンし、クライアントが接続を試みたときにTCP接続を作成し、データを受信し、何かを送り返し、再度リッスンします(そしてプロセスを無期限に繰り返します)。これは私がこれまでに持っているものです:
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()
これは完全に機能しているように見える場合があります(ブラウザーで「localhost:4444」を指定すると、サーバーはHTTP GET要求を出力し、Webページは「helloworld」というテキストを出力します)。しかし、最後の数分間にサーバーを閉じた後にサーバーを起動しようとすると、次のエラーメッセージが散発的に表示されます。
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
私はWindows7を使用してPythonでプログラミングしています。これを修正する方法について何かアイデアはありますか?