【发布时间】:2012-11-17 00:25:04
【问题描述】:
我有一个 C-ZMQ 客户端,它接收两个随机端口(来自pyzmq 服务器)然后连接到它们。
通常,一切正常,但有时第二次连接失败,errno 设置为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
因为额外的字节第二次连接失败...
也许这是pyzmq和zmq之间的某种兼容性错误
我正在使用 zmq 2.2.0 版
【问题讨论】:
-
什么是套接字类型?你能发布失败的代码吗?
-
@mechmind 我正在使用 connect(tcp://127.0.0.1:received_port1), connect(tcp://127.0.0.1:received_port2) 打开一个 REQ 套接字和一个 PAIR 套接字
-
失败的套接字是第二个,不管是哪种。