s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 0)

因爲要等待 2 個 MSL 才能最終釋放連接,所以如果這個時候程序馬上啓動,就會出現Address already in use錯誤。要過 1 分鐘以後纔可以啓動成功。如果你寫了一個 web 服務器,崩潰以後被腳本自動拉起失敗,需要等一分鐘才正常,運維可能要罵娘了。

node1:/root/test#python p2.py
Buffer size [Before]: 16384
Buffer size [Before]: 87380
alter-----------------------------------------------------------------------
16384
87380
Traceback (most recent call last):
  File "p2.py", line 15, in <module>
    s.bind(ip_port)#綁定地址
  File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
node1:/root/test#

node1:/root#netstat -na | grep 8080
tcp        0      0 192.168.137.2:8080          192.168.137.1:51321         TIME_WAIT   
#s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
#s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 0)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章