folks,

        i am doing a simple case and can't see my error:

in process a:
        ctxt = zmq_init(1, 5, 0);
        q = zmq_socket(ctxt, ZMQ_PUB);
        sprintf(buf, "tcp://%s:%s", machine, port);
        n = zmq_connect(q, buf);

        for(n = 0; n < 2050; n++){
                get_goo(loc, &data, &len);
                zmq_msg_init_size(&msg, len);
                memcpy(zmq_msg_data(&msg), data, len);
                m = zmq_send(q, &msg, 0);
                assert(m == 0);
        }
        zmq_term(ctxt);
        exit(0);

in process b:
        ctxt = zmq_init(1, 10, 0);
        q = zmq_socket(ctxt, ZMQ_SUB);
        sprintf(buf, "tcp://*:%s", port);
        n = zmq_bind(q, buf);
        assert(n == 0);
        n = zmq_setsockopt(q, ZMQ_SUBSCRIBE, 0, 0);
        assert(n == 0);

        for(n = 0; ; n++){
                zmq_msg_init(&msg);
                m = zmq_recv(q, &msg, 0);
                assert(m == 0);
                zmq_msg_close(&msg);
                if((n%100) == 99){
                        printf("got %d packets\n", n+1);
                        sleep(1);
                }
        }

the problem:
        process b doesn't always see all 2050 messages from process a.
maybe 5% it does. sometimes, 1300 get thru, other times, 2000.
nothing i've checked returns an error. i'm running 2.0.6 on redhat 5.4.
        is my code in error? or am i misunderstanding something?

thanks

------------------
Andrew Hume  (best -> Telework) +1 732-886-1886
and...@research.att.com  (Work) +1 973-360-8651
AT&T Labs - Research; member of USENIX and LOPSA



_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to