小编use*_*912的帖子

ZMQ C++ Req to Router问题

我正在使用ZeroMQ作为我的网络层,到目前为止一切正常,除了ROUTER套接字.特别是我在ROUTER上收到了预期的消息但是当我尝试将回复发送回我的REQ套接字时,从未收到消息.

这是我写的一个相对简单的测试,它试图向ROUTER发送一个"HELLO"消息,并期望一条消息回来.

这里客户端代码:

    try
    {
        zmq::context_t myContext;

        zmq::socket_t reqSocket(myContext, ZMQ_REQ);
        reqSocket.setsockopt(ZMQ_IDENTITY, "REQ", 3);
        reqSocket.connect(gpRouterAddress);

        //request delimiter
        zmq::message_t zmqMsgReqDelimiter(1);
        memcpy ((void *) zmqMsgReqDelimiter.data(), "\0", 1);
        reqSocket.send(zmqMsgReqDelimiter, ZMQ_SNDMORE);

        //some message
        zmq::message_t reqMsg(5);
        memcpy ((void *) reqMsg.data(), "HELLO", 5);
        reqSocket.send(reqMsg, 0);

        int rcvMore = 0;
        size_t sizeInt = sizeof(int);
        bool bRcvMore = true;
        std::vector<std::string> history;

        while(bRcvMore)
        {
            zmq::message_t zmqMsg;

            reqSocket.recv(&zmqMsg, rcvMore);
            const char* pMsgStr = static_cast<char*>(zmqMsg.data());
            history.push_back(pMsgStr);

            reqSocket.getsockopt(ZMQ_RCVMORE, &rcvMore, &sizeInt);

            bRcvMore = (rcvMore == 1);
        }
    }
    catch (zmq::error_t error)
    {
        std::string errorStr …
Run Code Online (Sandbox Code Playgroud)

c++ zeromq

5
推荐指数
1
解决办法
1578
查看次数

标签 统计

c++ ×1

zeromq ×1