Take a look at the man page for zmq_poll. You can do a non-blocking poll for incoming messages on your socket. If it returns immediately with 0, then no sockets in your pollset have pending messages to read.
Be aware that when zmq_poll does indicate that you have messages, you must read *all* of them from the socket before zmq_poll will work again. I'm pretty sure the man page explains this. Good luck. On Feb 19, 2013, at 8:44 AM, Lee Sylvester <[email protected]> wrote: > Hey guys, > > So, I've integrated ØMQ into my server. Now, I want to use ØMQ as a means to > supply information to a HTTP server from a separate management app. So, in > theory, it will look something like this > > int read_zmq_connections() { > int ret = 0; > while (zmq_has_messages(zmq_responder)) { > char *str = s_recv(zmq_responder); > parse_new_data(str); > free(str); > ++ret; > } > return ret; > } > > This way, if there are no messages on zmq_responder, then the function will > simply return. What I don't know how to do (and can't quite find) is how to > check if messages exist on the connection. Can anyone please point me in the > right direction? > > The reason why I need this non-blocking is that I will only be calling > 'read_zmq_connections' approximately once every five minutes and I don't want > my app to hang while waiting for messages. > > Thanks loads in advance, > Lee > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
