在Linux上使用阻塞套接字时,除了中断但部分成功的send()系统调用之外,send()是否有任何理由返回少于请求的内容?
我知道这可能是非常实现的定义,并且即使没有任何已安装的信号处理程序依赖于该行为也可能是非常危险的(因此中断系统调用的原因).我可能会绕发送电话直到完成;但是,如果有关于此事的任何官方消息,我将能够避免这种情况.
Why is it assumed that send may return with less than requested data transmitted on a blocking socket?提出了同样的问题,结果不确定:中断的系统调用被提及作为短返回计数的示例,但是仍然不清楚完整的TCP发送缓冲区是否会导致部分发送,或者send()是否会阻塞直到有缓冲区有足够的空间.
最佳答案