【发布时间】:2014-11-09 07:12:27
【问题描述】:
给定这样收到的 zeromq 消息:
zmq_msg_t messageIn;
int rc = zmq_msg_init(&messageIn);
rc = zmq_msg_recv(&messageIn, socket, 0);
我想访问传入的消息数据并将其存储到一个;
std::vector<char> inMsg;
试试这个;
std::memcpy(&inMsg, zmq_msg_data(&messageIn), zmq_msg_size(&messageIn));
没有用。任何人都可以就如何实现这一目标提出建议吗?
【问题讨论】:
-
memcpy使用 inMsg 地址显然没有做你想要的,因为它不指向存储。拉维回答了你的问题。使用他得到的 msg_str,您可以使用msg_str.begin()和end()迭代字符。如果您不想使用std::string,您可以使用数组。char *inMsg = new char[zmq_msg_size(&messageIn);然后memcpy像你一样进入这个数组。