我正在阅读 Boost Asio 的文档,它说
boost::asio::async_write_some
可能不会将所有数据传输到对等方。考虑使用async_write
如果您需要确保在异步操作完成之前写入所有数据,请使用该函数。
所以这是我的问题,在什么情况下我们应该使用它们,确保所有数据都写入不是很重要吗?!何时使用 async_write_some 只是这个函数在我看来没什么用?
async_write
当您需要发送完全适合缓冲区的特定响应时,在请求-答复模式下非常有用。 IE。当您在发送消息后切换到阅读模式时。
但是,如果您需要发送的数据多于写入缓冲区中的数据,那么是否发送整个缓冲区并不重要,因为您还有更多数据要发送。在这种情况下,确保发送整个缓冲区将是低效的,因为最后一个块可能比您刚刚调用时要小async_write_some
在循环中,不断地用更多数据填充缓冲区。为了获得最佳性能,您需要确保发送缓冲区中始终有足够的数据来填充整个帧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)