我用Python和Pyzmq一起使用ZMQ已经有一段时间了,我必须使用CLRZMQ绑定将部分代码移植到C。我在Google上四处寻找一些文档,但是我几乎什么都没找到,除了一些过时的代码示例,它们甚至都不起作用,这非常令人沮丧。在
我现在要达到的目标很简单。我们有一个简单的函数,它用超时轮询套接字,当超时时间过去时,它会引发一个自定义异常。下面是Python中的外观:
def raise_on_timeout(sock, timeout):
"""
sock is a ZMQ socket
timeout is a timedelta object from datetime.
"""
if timeout is not None:
timeout = int(timeout.total_seconds() * 1000)
if not sock.poll(timeout):
raise TimeoutException("Communication timed out")
看起来很简单,对吧?此函数在send_multipart和recv_multipart之间调用,以便在侦听数据时出现超时,我们可以对此进行管理。在
如何用CLRZMQ在C中实现类似的东西?在
另外,如果在CLRZMQ之前有任何api文档,如果您能指出我在哪里可以找到它,我将不胜感激。在
谢谢
好吧,我成功了。在
下面的代码在C中创建一个类似的raise_on_timeout方法。在
是这样的。但并不明显,因为C的医生很少。我只是从指南中的Java示例中得到启发,即使在那里,它们也没有真正解释什么起作用。只是想办法解决。在
好吧,这是最终的答案。在这个例子中,我甚至不需要上下文的实例。那样好多了。在
下面的代码在C中创建一个类似的raise_on_timeout方法。在
好吧。我认为我可能已经找到了解决办法。虽然我还没有测试过。在
为了实现与我在Python中想做的相同的事情,这个应该以同样的方式来实现。在
有什么想法?在
相关问题 更多 >
编程相关推荐