我屏蔽了我的linux服务器程序日志,我发现一些send()函数调用返回0.我想知道它是怎么发生的吗?除了海量数据传输之外,哪些因素会导致另一端无法跟上
答案 0 :(得分:1)
除了大规模的数据传输之外,哪些因素会导致另一端无法跟上。
这根本不是其中一个因素。
我知道这通常是由于海量数据传输导致另一端无法跟上的。
不,不是。这只发生在非阻塞模式下,它会导致send()返回-1并将'errno'设置为EAGAIN/EWOULDBLOCK.
你错了。
当且仅当您提供零长度时,send()将返回零。
这就是 man 页面所说的,并且自1983年以来就已经说过了,它是由Posix和Winsock规范强制执行的。