关于linux中socket阻塞与非阻塞,网上有很多。这里我只说说我个人的体会:
INT send(...INT nSendSize)函数:
阻塞:
如果内核缓冲区有足够大的缓冲区(>= nSendSize),直接数据拷贝,如果< nSendSize, 会一直阻塞,直到有足够缓冲区。
非阻塞:
如果缓冲区不够( < nSendedSize), 则返回先copy一部分,errno为egain。这个时候需要自己处理一下。
recv ()
这里省略
Linux Socket 阻塞与非阻塞详解
本文详细解析了 Linux 中 socket 的阻塞与非阻塞模式的工作原理。通过 INTsend 和 recv 函数的具体操作场景,阐述了两种模式下数据发送接收的行为差异。对于理解网络编程中的同步与异步机制具有很好的指导意义。
关于linux中socket阻塞与非阻塞,网上有很多。这里我只说说我个人的体会:
INT send(...INT nSendSize)函数:
阻塞:
如果内核缓冲区有足够大的缓冲区(>= nSendSize),直接数据拷贝,如果< nSendSize, 会一直阻塞,直到有足够缓冲区。
非阻塞:
如果缓冲区不够( < nSendedSize), 则返回先copy一部分,errno为egain。这个时候需要自己处理一下。
recv ()
这里省略
1164
1326

被折叠的 条评论
为什么被折叠?