我编写了一个zmq_poll()
具有 3 个前端和 3 个后端的 zmq 代理,超时为 -1,这使得它无穷无尽。前端套接字使用面向连接的-transport tcp://
-class 并与主机 IP 地址上zmq_bind()
的 -ports 相关联,例如.tcp
tcp://192.168.1.1:1000
zmq_poll( ..., ..., -1 )
当我的主机的 IP 地址发生变化时,有什么办法可以打破无限循环?
while(1) {
zmq_msg_t message;
zmq_pollitem_t items [] = {
{ frontend1, 0, ZMQ_POLLIN, 0 },
{ backend1, 0, ZMQ_POLLIN, 0 },
};
zmq_poll (items, 2, -1);
if(items[0].revents & ZMQ_POLLIN) {
...
}
if(items[1].revents & ZMQ_POLLIN) {
...
}
}
我试图轮询类似的事件,ZMQ_POLLIN | ZMQ_POLLERR
但是当我手动更改主机的 IP 地址时,它不会从对zmq_poll( ..., ..., -1 )
.