boost :: asio :: async_write()与boost :: asio :: write()

Al *_*sky 7 c++ boost boost-asio

如果使用的话,将数据缓冲区输出到线路上的时间是否有任何优势

boost::asio::write(m_socket, asio::buffer(dataOut_, len), asio::transfer_all());
Run Code Online (Sandbox Code Playgroud)

代替

boost::asio::async_write(m_socket, boost::asio::buffer(hbs, sizeof(hbs)),
                         boost::bind(&Client::handle_pulse, this,
                         boost::asio::placeholders::error,
                         boost::asio::placeholders::bytes_transferred));
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 2

最大的区别在于,普通方法write可以阻塞直到所有数据都写入,而async_write当所有数据都写入或发生错误时立即返回并调用回调。

我怀疑从调用到实际通过线路发送数据的时间有任何明显的差异。