面試題:非阻塞tcp socket調用close時緩衝區未發送數據的處理邏輯

這個問題主要考慮兩方面,close是否會阻塞調用?write寫入的數據能否正確發送到對端?
經過實現驗證:
close之前已設置過非阻塞,所以會立即返回,如果tcp緩衝區還有數據需要發送,數據能夠正確的發送到對端。
但有一點要注意:在發送的最後一個包會加FIN標誌;如果另一端也要關閉發FIN時,本端就會發RST,因爲本端的SOCKET已經關了。

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