以下是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/

10-13 05:05