gpt4 book ai didi

c++ - 将 asio 缓冲区 boost 为数据

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:14 24 4
gpt4 key购买 nike

Here我找到了一种将数据转换为 boost 缓冲区的方法:

#include <memory>
#include <boost/asio.hpp>

int main()
{
struct { float a, b; } data1;

auto mutable_buffer = boost::asio::buffer(data);
}

反之怎么办?我的意思是将 recv_buf.data() 转换成 data1

  socket.receive_from(boost::asio::buffer(recv_buf),
remote_endpoint, 0, error);
data1=recv_buf.data() ???????

最佳答案

你可以这样打包:

struct object{ float a, b; } data1[1];
auto mutable_buffer = boost::asio::buffer(data1);

并使用 memcpy 解压,但仅适用于 POD 类型。

const char* b = boost::asio::buffer_cast<const char*>(mutable_buffer);
object o;
memcpy(&o, b, boost::asio::buffer_size(mutable_buffer));

Live on Coliru

关于c++ - 将 asio 缓冲区 boost 为数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com