由于像这样收到zeromq消息:获取zeromq消息数据为标准::向量<char>
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));
没有工作。任何人都可以提供关于如何实现这一目标的建议?
'使用inMsg地址显然没有做你想要的东西,因为它并不指向一个存储memcpy'。拉维回答了你的问题。使用他得到的msg_str可以使用'msg_str.begin()'和'end()'来迭代字符。如果你不想使用'std :: string',你可以使用数组。像你一样,将char * inMsg = new char [zmq_msg_size(&messageIn);''memcpy'放入此数组中。 – 2014-11-08 20:38:32