【发布时间】:2018-11-26 11:52:06
【问题描述】:
我正在为 ZMQ (cppzmq) 使用 C++ 绑定,我正在尝试使用 .setsockopt()- 方法设置 TCP 套接字的连接超时,如下所示:
int connectTimeout = 1000;
socket.setsockopt(ZMQ_CONNECT_TIMEOUT, &connectTimeout, sizeof(connectTimeout));
socket.connect(clientConfiguration.uri);
但是,在代码到达套接字上的实际.send()/.recv() 之前,我没有看到任何事情(抛出异常?)。只是为了确保套接字有机会抛出,我在 .connect() 和 .send() 方法之间设置了一个睡眠。
根据文档.zmq_connect() 只是进入READY-状态而不实际连接到端点。所以问题是我应该何时以及如何体验连接超时?
【问题讨论】:
-
你的交通工具是什么?
-
TCP,问题已更新
-
我没有看到文档中提到
zmq_connect是异步的。你介意指点我吗? -
api.zeromq.org/3-2:zmq-connect - “对于大多数传输和套接字类型,连接不会立即执行,而是根据 ØMQ 的需要执行。因此,成功调用 zmq_connect() 并不意味着连接已经或可能实际上是成立。”
-
@user3666197,有什么不同吗?
zmq_connect在 api.zeromq.org/4-2:zmq-connect 的行为是否有所不同?