<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi Kiu,</div><div><br></div><div>That was just a copy paste error in mail. I do have poll_items[1] initialized.</div><div>Do you see any issue why zmq_poll API just returns only the first message received on each socket.</div><div><br></div><div>Thanks</div><div>Badhri<br><br>Sent from my iPhone</div><div><br>On Aug 18, 2014, at 5:31 PM, KIU Shueng Chuan <<a href="mailto:nixchuan@gmail.com">nixchuan@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Your snippet neither initializes nor checks poll_items[1]. But no, revents field doesn't need to be reset (nor initialized).</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 19, 2014 at 8:14 AM, Badhrinath Manoharan <span dir="ltr"><<a href="mailto:badhrim@gmail.com" target="_blank">badhrim@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hi,<br></div><br></div>I have the following topology<br><br></div>Client ---> Broker ----> Server<br>

<br></div>Both the client and server are sockets of type ZMQ_REQ while the Broker has a socket connected to client and another Socket Connected to Server both are of type ZMQ_BROKER.<br>
<br>    void *frontend = zmq_socket (context, ZMQ_ROUTER);<br>    void *backend = zmq_socket (context, ZMQ_ROUTER);<br><br>    zmq_bind(frontend, "ipc:///users/badmanoh/frontend.ipc");<br>    zmq_bind(backend, "ipc:///users/badmanoh/backend.ipc");<br>


<br>    poll_items[0].socket = frontend;<br>    poll_items[0].fd = 0;<br>    poll_items[0].events = ZMQ_POLLIN;<br>    poll_items[0].revents = 0;<br><br>    poll_items[0].socket = backend;<br>    poll_items[0].fd = 0;<br>


    poll_items[0].events = ZMQ_POLLIN;<br>    poll_items[0].revents = 0;<br><br>    while (1) {<br>        ret = zmq_poll(poll_items, 2, -1);<br>        if (ret == -1) {<br>            printf("zmq_poll returned -1. Error: %d\n", errno);<br>


            return 0;<br>        }<br>        if (poll_items[0].revents & ZMQ_POLLIN) {<br>        }<br>        if (poll_items[0].revents & ZMQ_POLLIN) {<br>        }<br>}<br><br></div>On the broker code, I have a zmq_poll(poll_items, 2, -1) on a while loop. I see the zmq_poll notifying the first message from each socket. However subsequent messages from both the client or server sockets are not at all returned and the zmq_poll just stays in an infinite loop. Could you let us know if I am missing anything? Do I need to reset the revents value as part of the first notification?<br>


<br></div>Thanks<br>Badhri<br></div>
<br>_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
<a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
<br></blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>zeromq-dev mailing list</span><br><span><a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a></span><br><span><a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a></span><br></div></blockquote></body></html>