關於recv的返回值


通常recv有幾種返回值

1.==0

表示收到FIN包, 因為FIN包,是狀態為標記為FIN的空包,沒有攜帶數據,所以recv的長度為0

2.>0 

表示收到了數據, 但是有沒有收完,是不知道的

3.<0

1) == EAGAIN  表示接收緩沖區中已經沒數據了,需要暫停下,業務程序需要檢查下包的完整性,才知道有沒有收完,如果沒收完,就繼續recv

2) != EAGAIN  表示接收出錯了,如果是服務端, 就可以直接關閉連接了.

 

切記收到FIN包后,准備關閉連接前,一定要處理完接收緩沖區中的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM