關於linux中socket阻塞與非阻塞,網上有很多。這裏我只說說我個人的體會:
INT send(...INT nSendSize)函數:
阻塞:
如果內核緩衝區有足夠大的緩衝區(>= nSendSize),直接數據拷貝,如果< nSendSize, 會一直阻塞,直到有足夠緩衝區。
非阻塞:
如果緩衝區不夠( < nSendedSize), 則返回先copy一部分,errno爲egain。這個時候需要自己處理一下。
recv ()
這裏省略
關於linux中socket阻塞與非阻塞,網上有很多。這裏我只說說我個人的體會:
INT send(...INT nSendSize)函數:
阻塞:
如果內核緩衝區有足夠大的緩衝區(>= nSendSize),直接數據拷貝,如果< nSendSize, 會一直阻塞,直到有足夠緩衝區。
非阻塞:
如果緩衝區不夠( < nSendedSize), 則返回先copy一部分,errno爲egain。這個時候需要自己處理一下。
recv ()
這裏省略