'因为我们可以通过其成员函数non_blocking(true)
将套接字设置为非阻塞状态。
async_write(socket, buffer)
和非阻塞socket.send(buffer)
之间是否存在差异?
多个socket.send(buffer)
会导致无序数据传递,与async_write(socket, buffer)
相同吗?
答案 0 :(得分:1)
发送并不能保证所有数据都写入套接字。您应该检查“写入的字节数”返回值,错误代码等。另一方面, async_write 将尝试发送,直到发送所有数据或发生错误。
来自ip::tcp::send手册的评论:
发送操作可能不会将所有数据传输到对等方。 如果需要确保所有数据,请考虑使用write函数 在阻塞操作完成之前写入。