Там, кажется, два основных способа асинхронно получить данные с розеткой в ZeroMQ:Использование zmq_recv и ZMQ_NOBLOCK против zmq_poll для одной розетки
if(zmq_recv(&msg, ZMQ_NOBLOCK) == 0) { // could return EAGAIN or others
// do stuff
}
...and...
if(zmq_poll(&pollItems[0], num, timeout)) {
if(zmq_poll(&msg) == 0) {
// do stuff
}
}
Если у меня есть только один сокет, который я хочу читать, является есть веская причина, я должен выбрать версию, которая использует zmq_poll
, а не zmq_recv
с ZMQ_NOBLOCK
?