ZeroMQ 超时推出

netkiller- 发布于 2014/07/23 20:55
阅读 2K+
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>

int main (void)
{
    printf ("Connecting to hello world server…\n");
    void *context = zmq_ctx_new ();
    void *requester = zmq_socket (context, ZMQ_REQ);
    int timeout = 1000;
    zmq_setsockopt (requester, ZMQ_RCVTIMEO, &timeout, sizeof(timeout));
    zmq_setsockopt (requester, ZMQ_SNDTIMEO, &timeout, sizeof(timeout));

    int rc = zmq_connect (requester, "tcp://192.168.2.11:5555");
/*
    if(requester){
      printf("OK\n");
    }else{
      printf("OKaaaa\n");
    }
    */
    int request_nbr;
    for (request_nbr = 0; request_nbr != 10; request_nbr++) {
        char buffer [10];
        printf ("Sending Hello %d…\n", request_nbr);
        rc = zmq_send (requester, "Hello", 5, 0);
        
    printf("%d\n",rc);
        zmq_recv (requester, buffer, 10, 0);
        printf ("Received World %d\n", request_nbr);
    }
    zmq_close (requester);
    zmq_ctx_destroy (context);
    return 0;
}

我的zeromq 连接超时不能终止,例如我的服务器挂了,mq会一直挂起,我想让他探测如果连接失败就退出。

我身使用一个不存在的IP地址测试,请看上面程序。他会一直挂起。

查遍网络发现 zmq_setsockopt (requester, ZMQ_HANDSHAKE_IVL, &timeout, sizeof(timeout)); 4.0.5 版本中才能使用。还处在不稳定开发板中。。

各位有何高见??




加载中
1
一号男嘉宾
一号男嘉宾
还好我用的是rabbitmq
一号男嘉宾
一号男嘉宾
如果你只是为了cpp,activemq好像有单独做cpp的lib估计不错。
一号男嘉宾
一号男嘉宾
没注意这个,但是看见他支持的语言里面有cpp。不知道是怎么实现的。
一号男嘉宾
一号男嘉宾
没注意这个,但是看见他支持的语言里面有cpp。不知道是怎么实现的。
netkiller-
netkiller-
rabbtmq 官方没有C 的lib 吧? 只能通过第三方 ampq连接对吧??
1
h
hking1368

这个是zmq的特性,相当于自动断线重连

netkiller-
netkiller-
我是江Zeromq 作为扩展放进mysql 通过函数调用,一旦接收端挂掉,就会刮起。我只想让他抛弃连接。
返回顶部
顶部