以下是ZeroMQ中使用smessage
方法的代码。我在zhelpers.hpp
头文件中搜索了它的定义,但是在那里不存在它。
#include "zhelpers.hpp"
#include <string>
int main (int argc, char *argv[])
{
// Process tasks forever
while (1) {
zmq::message_t message;
int workload; // Workload in msecs
receiver.recv(&message);
std::string smessage(static_cast<char*>(message.data()), message.size());
std::istringstream iss(smessage);
iss >> workload;
// Do the work
s_sleep(workload);
// Send results to sink
message.rebuild();
sender.send(message);
// Simple progress indicator for the viewer
std::cout << "." << std::flush;
}
return 0;
}
最佳答案
smessage
不是方法。它是std::string
类型的变量,该变量是通过使用重载的构造函数创建的,该构造函数采用指针和大小。
顺便说一句,您可以直接使用 zmq::message_t::str()
函数获取std::string
。
例如:
zmq::message_t msg;
// read some data...
std::string smessage = msg.str();
关于c++ - ZeroMQ中定义的方法smessage()在哪个头文件中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49452216/