0

我尝试使用以下代码读取套接字(在服务器端)中的可用字节数,并且该变量packet_bytes不执行任何操作。我期望读取数据包使用的字节数,packet_bytes但这似乎不起作用。

std::size_t packet_bytes = 0;

socket_.async_read_some(boost::asio::buffer(data_, max_length),
            boost::bind(&session::handle_read, this,
            boost::asio::placeholders::error,
            packet_bytes));

我也试过std::size_t packet_bytes = socket_.available();了,也没有返回任何东西。这是整个代码

4

1 回答 1

3

调用中的packet_bytes参数bind也应该是一个占位符:

socket_.async_read_some(boost::asio::buffer(data_, max_length),
    boost::bind(&session::handle_read, this,
                boost::asio::placeholders::error,
                boost::asio::placeholders::bytes_transferred));

然后在您的处理程序函数中,该参数将是读取的字节数。

参见例如手册中的示例。

于 2013-04-05T08:23:46.933 回答