小编Ama*_*röm的帖子

boost :: asio读取从socket到streambuf的n个字节

我有一个序列化的结构,通过套接字发送.我需要以块的形式读取它,因为它的一个字段包含剩余数据的大小:我需要读取前几个字节,找出长度并阅读其余部分.这就是我所拥有的:

    boost::asio::streambuf buffer;
    boost::system::error_code err_code;
    // here I need to read only first 16 bytes
    boost::asio::read(socket, buffer, err_code);
    std::istream is(&buffer);
    boost::archive::binary_iarchive ia(is);
    ia >> my_struct;
Run Code Online (Sandbox Code Playgroud)

我看了看

    boost::asio::async_read(s, boost::asio::buffer(data, size), handler);
Run Code Online (Sandbox Code Playgroud)

但它只能读取数据到boost :: asio :: buffer.我想知道我是否可以使用boost :: asio :: streambuf做同样的事情?先感谢您.

c++ boost streambuf boost-asio boost-serialization

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

boost ×1

boost-asio ×1

boost-serialization ×1

c++ ×1

streambuf ×1