gpt4 book ai didi

c++ - Boost Array 数据问题

转载 作者:行者123 更新时间:2023-11-30 04:09:53 27 4
gpt4 key购买 nike

嘿!

我现在尝试使用 boost asio 发送数据包,并将数据包数据存储在 boost 数组中。在我通过动态分配的字符数组发送它之前。

我通过 boost::array<char, 5824> 声明数组

然后我在数组中设置正常值。

我通过 boost asio(同步)发送它。但是当客户端收到数据包时,问题就出现了,大约1000个前字节是可以的,但其他包含随机数据。

我做错了什么?我尝试了不同的组合,但结果是一样的。谢谢!

编辑

我通过 memcpy 在方法 array.data() 获得的数组指针上填充数据;
例如memcpy(array.data()+10, &chararray, 15);
数据由 boost::asio::write(socket_, boost::asio::buffer(array)); 发送

最佳答案

为什么不使用 std::array ? Boost 推荐它作为替代品,因为它已被添加到标准库中。然后你可以使用 fill成员对其进行初始化,或使用 {} 初始化程序将其归零。

using socketData = std::array<char, 5824>;
socketData data{}; // uninitialized per standard, the {} zeros

socketData::iterator iter = data.begin();

// write data using iterators
boost::asio::write(socket_, boost::asio::buffer(array));

关于c++ - Boost Array 数据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922599/

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