簡體   English   中英

Python 套接字 OSError: [Errno 98] 地址已在使用中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM