标志MSG_WAITALL
可用于recv
,它请求recv
阻塞,直到完整的请求被满足。这意味着 recv
在接收到请求的数据(由参数 len
指定)之前不会返回,除非发生错误或连接已关闭。
为什么这样的标志不适用于 send
呢?我认为这对发送非常有用(send
直到调用者想要发送的所有字节都已交给 TCP 发送缓冲区后才会返回)
最佳答案
这将是多余的。您始终可以将套接字置于阻塞模式(如果尚未),在这种情况下,send()
会阻塞,直到所有数据都已传输。
关于sockets - 为什么发送时没有像 MSG_WAITALL 这样的标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44240934/