0

ゼロ mq 3.2.0 C++ ライブラリを使用しています。zmq_connect を使用して、zmq_bild の前にポートを接続します。しかし、この関数は成功を返します。接続が失敗したことをどのように知ることができますか? 私のコードは次のとおりです。

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 の機能であり、接続ステータスなどは抽象化されています。接続しているかどうかを確認するために確認できる公開情報はありません。これは、サーバーが一時的にダウンしていても接続できることを意味し、後でサーバーが使用可能になったときに zeromq がすべてを処理します。これは祝福と呪いの両方になる可能性があります。

接続ステータスを知る必要がある場合にほとんどの人が行うことは、ある種のハートビートを実装することです。たとえば、REQ/REP ping/pong です。

クライアントの観点から信頼性を確保する方法の例として、怠惰な海賊パターンを見てください。

于 2013-08-05T05:54:55.673 に答える