正如我在Boost :: asio中看到的那样,异步读取函数不会返回传输的字节数,但正常的读取函数会返回。当我使用async_read_some时,如何获取传输的字节数? (参数:缓冲区,处理程序)
答案 0 :(得分:4)
All forms of async_read
期待表单的“ReadHandler
”回调
void handler(
const boost::system::error_code& error, // Result of operation.
std::size_t bytes_transferred // Number of bytes copied into the
// buffers. If an error occurred,
// this will be the number of
// bytes successfully transferred
// prior to the error.
);
回调的第二个参数是读取的字节数。
答案 1 :(得分:2)
一旦读取完成,异步读取函数就会调用“处理程序”函数(或函数对象)。传输的字节数传递给该函数;函数的签名必须是:
void handler(
const boost::system::error_code& error, // Result of operation.
std::size_t bytes_transferred // Number of bytes read.
);
读取处理程序的要求记录在here