【发布时间】:2021-01-19 11:48:01
【问题描述】:
我有一个字节向量,我想向它存储不同类型的数据。我已将该向量定义为 packed_data,您可以在我的类的以下成员函数中看到它。
现在我想用 PackedData 成员函数获取不同类型的数据,然后将这些信息作为字节附加到 raw_data 向量中。
// Here I initialize a single vector with the vectors value
std::vector<BYTE> PackedData()
{
std::vector<BYTE> packed_data;
// Here I have initialized the header with two byte
packed_data.insert(packed_data.end(), m_header.begin(), m_header.end());
// I specified encoding of the packet
packed_data.insert(packed_data.end(), m_messageEncoding);
// I specified message type
packed_data.insert(packed_data.end(), m_messageType);
// I specified size of payload should send to the server
packed_data.insert(packed_data.end(), m_messageSize);
// I specified payload itself must send to the server
packed_data.insert(packed_data.end(), m_payload.begin(), m_payload.end());
// I specified footer
packed_data.insert(packed_data.end(), m_footer.begin(), m_footer.end());
return packed_data;
}
将向量添加到 packed_data 没有任何问题,但是当我想将消息的大小(它具有 unsigned int 数据类型)作为 4 字节实体存储到字节向量中时,我无法正确来自向量的数据。
例如,当我将 512(十进制值)作为 m_messageSize(无符号整数)的输入传递时,它只会将一个字节附加到 packed_data 向量(例如 0x20)。
在下一节中,您还可以看到我的类的构造函数,我将在那里初始化我的成员字段:
CRawData(MessageType arg_message_type, MessageEncoding arg_encoding, unsigned int arg_total_size, std::vector<BYTE> arg_payload)
{
// Header Initialization
m_header.push_back(0xAA);
m_header.push_back(0xAA);
// Send / Request / Verification Specifier
m_messageType = arg_message_type;
// Encoding Specifier
m_messageEncoding = arg_encoding;
// Number of chunks should sent
m_messageSize = arg_total_size;
// Payload initialization
m_payload = arg_payload;
// Footer specifier
m_footer.push_back(0xFF);
m_footer.push_back(0xFF);
}
确实,我想将 00 00 20 00 之类的内容附加到我的向量中。我该如何管理这个目标?如果您需要更多信息,请在评论中请求我可以以正确的方式编辑我的问题。
【问题讨论】: