我檢查了很多套接字問題,找不到答案如何正確編寫此代碼我希望服務器套接字保持監聽和工作,但是如果我將運行客戶端不止一次在同一個活動服務器上,我不斷收到錯誤。當我嘗試修改代碼時,我主要收到10048和10061套接字錯誤號或Windows UAC錯誤(這是通過從標準80更改端口號來避免的)。我知道我應該刪除.close或break循環,但是我放置的其他東西不斷給我新的錯誤。這個代碼應該如何看起來像這樣的服務器可以不斷聽新客戶端?如何在Python中重複使用相同的套接字(錯誤10048,10061等)
客戶
# Echo client program
import socket
host = '192.168.1.3' # The remote host
port = 50007 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)
服務器
# Echo server program
import socket
HOST = '' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
conn.send(data)
conn.close()
預期輸出:通過( '192.168.1.3',51019)<連接 - 超過一次
現在效果很好。感謝您的時間和幫助。 – JeremyK