小编use*_*525的帖子

将缓冲区转换为字符串 C++ boost

我已经编写了客户端服务器通信。但是在 C++ 客户端解析我的缓冲区期间,我丢失了大部分数据。我已经了解问题所在,但仍然不知道如何解决:代码:

            std::cout << b.max_size() <<std::endl;
    boost::asio::streambuf::mutable_buffers_type bufs = b.prepare(50000);
    size_t n = socket.receive(bufs);
    // received data is "committed" from output sequence to input sequence
    b.commit(n);
    std::istream is(&b);
    std::string s;
    is >> s;
Run Code Online (Sandbox Code Playgroud)

我分配的缓冲区大小 = 5000(最大大小为 429496)。我的问题与 b.commit(n); std::istream 是(&b); 并且字符串 s 的大小为 119,这是不可接受的。

c++ string buffer boost

1
推荐指数
1
解决办法
5567
查看次数

标签 统计

boost ×1

buffer ×1

c++ ×1

string ×1