ZeroMQ第二次连接因einval而失败

时间:2012-11-17 00:25:04

标签: python c zeromq pyzmq

我有一个C-ZMQ客户端,它接收两个随机端口(来自pyzmq服务器),然后连接到它们。

通常,一切正常,但有时第二次连接失败,错误号设置为EINVAL。 (即使我在连接呼叫之间切换,第二个仍然失败)。

端口号很好,看起来像ZeroMQ中的某种竞争条件。

任何人都知道如何解决这个问题?

[修改]:

服务器发送此结构中的端口“port1:port2”,例如“1234:1235” 服务器上数据包的hexdump为31 32 33 34 3a 31 32 33 35 在客户端上31 32 33 34 3a 31 32 33 35 01

并且因为第二次连接的额外字节失败...

也许这是pyzmqzmq之间的某种兼容性错误 我正在使用zmq ver 2.2.0

1 个答案:

答案 0 :(得分:0)

这不是zmq中的竞争条件,也不是zmq_connect的问题。额外的0x01字节可能是错误的。如果您将其传递给zmq_connect,除EINVAL外,您期望得到什么结果?

那个额外的字节来自哪里?你是否在两个同伴之间发送的所有消息上得到它?你在这个项目中做了什么不同的事情?

由于您尚未提供源代码,因此很难提供比此更详细的建议。