2012-02-23 94 views
2

不重建方面,我有一些使用ZeroMq及其各自的包装应用程序(.NET/QT)经销商ZeroMQ

我使用的是经销商/路由器模式,并具有以下问题。设备A(.net)是路由器,设备B & C(QT)是经销商。当设备B或C未正常关闭TCP连接时,任何后续尝试建立ZeroMQ连接失败。

发布ZeroMq连接的最佳做法是什么?这是API的内部?

回答

0

当你有关于使用ZeroMQ的这种问题时,帮助他人帮助你的最好方法是编写一个最小的测试用例,用它们来重现你所看到的问题。否则,我们所能做的就是回答可能和maybes。

在这种情况下,“失败”是什么意思?谁在绑定,谁在连接?

在制作最小测试用例时,请使用基本的C API,以便排除任何语言绑定问题。

干杯

+0

将试图一起举一个例子来说明问题。 – merbla 2012-04-22 10:14:54

+0

我正在使用pyzmq。如果其中一个客户经销商提供自己的身份(Merbs'B和C)与服务器路由器(A)断开连接,然后重新启动,则路由器不会更新其在哪里查找身份的记录,尽管新的连接。这是预期的功能吗? – Anthony 2013-04-23 21:01:20

+0

来自router.cpp:identify_peer() - //忽略具有重复ID的对等体。 if(it!= outpipes.end()) return false; 看起来确实如此--Pieter,你认为使它成为套接字选项(甚至默认)是否值得使用特定标识更新管道到最新连接? – Anthony 2013-04-24 23:58:41