[英]Python socket OSError: [Errno 98] Address already in use
我在本地主機上運行它並在關閉連接並嘗試再次運行后不斷收到OSError: [Errno 98] Address already in use
。
### server ###
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port= 9876
serversocket.bind((host, port))
serversocket.listen(5)
while True:
clientsocket,addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
msg = 'Thank you for connecting'+ "\r\n"
clientsocket.send(msg.encode('ascii'))
clientsocket.close()
### client ###
import socket
sock= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port = 9876
sock.connect((host, port))
msg = sock.recv(1024)
sock.close()
print (msg.decode('ascii'))
在使用 bind() 方法之前必須使用以下語句
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
如果你還是有問題,你可以查看你的網絡連接,然后手動關閉你之前使用的那個,因為當你再次運行程序時,如果你已經把上述指令放在了 bind() 方法之前,一切都應該沒問題.
你也應該關閉 serversocket
serversocket.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.