2013-04-22 43 views
0

正如我在Boost :: asio中看到的那样,异步读取函数不会返回传输的字节量,而是正常的读取函数。当我使用async_read_some时,如何获得传输的字节数量? (PARAMS:缓冲,处理器)如何获得异步阅读提升传输字节量asio C++

+1

你看一看的文档?这是一个非常基本的信息,它出现在任何与套接字相关的示例或函数参考中。http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/reference/ReadHandler.html – 2013-04-22 19:14:41

回答

4

All forms of async_read期望形式

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. 
); 

回调的第二个参数的“ReadHandler”回调将被读取的字节数。

2

读取完成后,异步读取函数调用“处理函数”函数(或函数对象)。传输的字节数传递给该函数;该函数的签名必须是:

void handler(
    const boost::system::error_code& error, // Result of operation. 
    std::size_t bytes_transferred   // Number of bytes read. 
); 

读处理程序的要求都记录here