0

我正在使用零 mq 3.2.0 C++ 库。我在 zmq_bild 之前使用 zmq_connect 连接一个端口。但是这个函数返回成功。我怎么知道连接失败?我的代码是:

void *ctx = zmq_ctx_new(1);
void *skt = zmq_socket(ctx, ZMQ_SUB);
int ret = zmq_connect(skt, "tcp://192.168.9.97:5561"); // 192.168.9.97:5561 is not binded
// zmq_connect return zero
4

1 回答 1

1

这其实是 zeromq 的一个特性,连接状态等等都是从你身上抽象出来的。没有公开信息可以检查以查看您是否已连接 AFAIK。这意味着即使服务器暂时关闭,您也可以连接,并且当服务器稍后可用时,zeromq 将处理所有事情。这既可以是祝福,也可以是诅咒。

如果大多数人需要知道连接状态,他们最终会做的是实现某种心跳。例如 REQ/REP ping/pong。

查看惰性海盗模式,了解如何从客户角度确保可靠性的示例。

于 2013-08-05T05:54:55.673 回答