有没有办法通过协程获取在 Boost asio 中传输的字节数
Is there way to get the number of bytes transfered in Boost asio with coroutines
我正在使用带协程的 boost asio 从 tcp 套接字获取一些数据。
在那些文档中显示的示例中,示例看起来像
http::async_read(socket, buffer, request, yield[ec]);
但是在这种情况下我怎样才能得到传输的字节数。
不使用协程我们可以绑定一个回调函数。
void onReadDataComplete(boost::system::error_code ec, std::size_t bytes_transferred)
但是我不太清楚如何用协程做同样的事情。
仔细阅读这篇link。
您的启动函数 async_read
可以用 handler
或 yield
调用。处理程序签名必须是
void handler(boost::system::error_code ec, result_type result);
其中 result
表示读取了多少字节。当您用 yield
代替 handler
调用 async_read
时,async_read
returns result_type
即 size_t
- 这意味着计数器读取字节。所以你只需要检查 async_read
.
中的 return 值
我正在使用带协程的 boost asio 从 tcp 套接字获取一些数据。 在那些文档中显示的示例中,示例看起来像
http::async_read(socket, buffer, request, yield[ec]);
但是在这种情况下我怎样才能得到传输的字节数。
不使用协程我们可以绑定一个回调函数。
void onReadDataComplete(boost::system::error_code ec, std::size_t bytes_transferred)
但是我不太清楚如何用协程做同样的事情。
仔细阅读这篇link。
您的启动函数 async_read
可以用 handler
或 yield
调用。处理程序签名必须是
void handler(boost::system::error_code ec, result_type result);
其中 result
表示读取了多少字节。当您用 yield
代替 handler
调用 async_read
时,async_read
returns result_type
即 size_t
- 这意味着计数器读取字节。所以你只需要检查 async_read
.