什么因素会导致linux send()函数返回0?

时间:2014-02-24 05:38:52

标签: linux tcp

我屏蔽了我的linux服务器程序日志,我发现一些send()函数调用返回0.我想知道它是怎么发生的吗?除了海量数据传输之外,哪些因素会导致另一端无法跟上

1 个答案:

答案 0 :(得分:1)

  

除了大规模的数据传输之外,哪些因素会导致另一端无法跟上。

这根本不是其中一个因素。

  

我知道这通常是由于海量数据传输导致另一端无法跟上的。

不,不是。这只发生在非阻塞模式下,它会导致send()返回-1并将'errno'设置为EAGAIN/EWOULDBLOCK.

你错了。

当且仅当您提供零长度时,

send()将返回零。

这就是 man 页面所说的,并且自1983年以来就已经说过了,它是由Posix和Winsock规范强制执行的。