我不明白boost :: asio read()函数的参数

时间:2015-11-28 02:46:21

标签: c++ boost bind

这是一个使用boost :: asio的示例echo客户端,我不明白的是read()函数的第三个参数,它是一个绑定read_complete函数的绑定函数,但它不传递bytes参数(_1或者_2?),在read_complete中我们将使用这个bytes参数。那么,read_complete函数如何工作呢?

size_t read_complete(char *buf, const error_code &err, size_t bytes)
{
    if (err)
        return 0;
    bool found = std::find(buf, buf+bytes, '\n') < buf + bytes;
    // we read one-by-one until we get to enter, no buffering
    return found? 0: 1;
}

void sync_echo(std::string msg)
{
...
int bytes = read(sock, buffer(buf), boost::bind(read_complete, buf, _1, _2));
...
}

0 个答案:

没有答案