gpt4 book ai didi

c++ - 在 Boost Asio 缓冲区中打包结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:38 26 4
gpt4 key购买 nike

我正在寻找一种通过带有 Boost Asio 的套接字发送由自定义数据结构组成的数据包的方法。目前我知道你可以发送一个带有标准 boost asio 缓冲区的字符串(在 boost::asio::write(..) 方法中)。

例如,是否可以将数据从填充的结构发送到服务器或客户端?如果是,我需要怎么做,因为我找不到关于此的文档。

最佳答案

您可以按位复制 POD 对象。

事实上,只要 T 是 POD 结构,Asio 就接受 boost/std array<T, N>T[]vector<T> 缓冲区。

否则,您可以使用 Boost Serialization 来序列化您的数据。

最后,Boost Spirit 对二进制文件(二进制双字 (big-endian/little-endian)、二进制 float )提供了一些支持。

更新示例:

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

int main()
{
struct { float a, b; } arr[10];

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

Live On Coliru

关于c++ - 在 Boost Asio 缓冲区中打包结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22868875/

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