非阻塞请求-答复方案(ZeroMQ)

问题描述 投票:0回答:1

我正在使用Request-Reply方案使用ZeroMQ套接字在两台计算机之间交换消息。这种交换是通过带有一些其他功能的C程序完成的。

在响应器计算机停机的情况下,请求者无限期地等待消息,从而阻止了程序的其余功能。这不是我想要的。

我尝试使用:

zmq_recv (requester, buffer, 256, ZMQ_DONTWAIT);

但是请求者立即返回,因为(显然)队列中没有消息。

在ZeroMQ中,有没有办法采用非阻塞的请求-答复方案?类似于:“如果在1秒钟内未收到消息,请返回”。

c zeromq
1个回答
0
投票

功能:select()具有“超时”参数,您可以将其设置为1秒。然后,当选定的文件描述符之一需要服务时,select()返回;或者,经过1秒后,返回[OR]。建议阅读select()的手册页以了解详细信息

© www.soinside.com 2019 - 2024. All rights reserved.