send函数何时返回

send 分阻塞和非阻塞模式的!

  • 1 在阻塞模式下,
    send函数是将应用程序请求发送的数据拷贝到发送缓存中发送并得到接收端的确认后再返回

  • 2 在非阻塞模式下,
    send函数仅仅是将数据拷贝到协议栈的缓存区而已,如果缓存区可用空间不够,则尽能力的拷贝,返回成功拷贝的大小;如缓存区可用空间为0,则返回-1,同时设置errno为EAGAIN.
    但是此时这些数据并不一定马上被传到连接的另一端。如果协议在后续的传送过程中出现网络错误的话,那么下一个Socket函数就会返回SOCKET_ERROR。

原文地址:https://www.cnblogs.com/hystill/p/13783204.html