我做了一個實驗:
服務器偵聽端口8804接受客戶端的連接,然後發送數據給客戶端。我關閉了網絡。連接超時TCP寫入(netstat顯示ESTABLISHED)
- 當我運行netstat -anotp | grep 8804,它表明服務器和客戶端的連接都是「ESTABLISHED」,但沒有數據傳輸。
- 過了一會,服務器拋出一個錯誤:「連接超時」
- netstat -anotp | grep的8804,發現客戶仍然是「ESTABLISHED」
所以:
1.爲什麼被屏蔽的系統調用的服務器「寫」扔「連接超時」的錯誤。爲什麼不是客戶?
2.如何讓客戶端找到連接實際上是關閉的。
3.當網絡不工作時,爲什麼服務器和客戶端的狀態都是「ESTABLISHED」?
感謝您的回答!
你有什麼語言在這個問題? –
@Mike Pennington,C – renenglish