关于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 ()
这里省略