Boost Array数据问题

用户名

嘿!

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

我通过声明数组 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));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章