作為用 C 實作的 TCP 客戶端的一部分,我有一個阻塞 TCP 套接字。::read()它正在嘗試使用對套接字描述符的呼叫來讀取資料。我看到非常常見的情況,其中讀取回傳值為 0,但值為errnois EAGAIN。
在阻塞套接字的情況下,EAGAIN 應該意味著什么?
我了解非阻塞套接字的功能,但不清楚阻塞套接字。
我知道這可能是因為讀取超時,但我目前沒有設定讀取超時值。
linux TCP套接字的默認讀取超時值是多少?
uj5u.com熱心網友回復:
讀取回傳值為 0
這意味著對等方已經優雅地關閉了它的連接端。您需要關閉該連接的套接字描述符。不要費心檢查errno,在這種情況下它是沒有意義的。它只有read()在回傳時才有意義< 0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441954.html
