或許你遇到過這樣的情況:
- 關閉服務端之后,再次重啟時一直報:Address already in use(地址重用)
- 一段時間過后,再次輸入 ./svr 時,服務端又能重啟了???
下面實際操作一下:
1. 重啟服務端:無法正常啟動

2. 一段時間過后:可以正常啟動

3. 看下埠狀態

并不是我們想象中的連接關閉了,而是處于一種 TIME_WAIT狀態,也就是說19999埠仍然被占用著,因此會出現地址重用的提示
如圖:

小結:
- 先關閉連接的一端(服務端),在回復應答發送
ACK之后會進入一個TIME_WAIT的狀態,等待2MSL的時間確保對端確實收到了應答 - 若
ACK應答在網路中丟失,超過等待時間,被動關閉的一端(客戶端)會重新給服務端發送一個FIN請求:超時重傳 - 主動關閉連接的一端(服務端)收到
FIN后,會重新發送ACK應答,并重新計時等待2MSL,直到時間耗盡,服務端關閉
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/243347.html
標籤:其他
上一篇:命令列快速開啟應用程式
