すべてがそうあるべきです。ZeroMqの利点(もちろん、見方によって異なります)は、サーバーの起動後に接続する必要がないことです。つまり、サーバーへの接続が一時的にダウンしている場合でも接続できます。ZeroMqは接続(要求)を維持し、再試行します。
zmq_connect()のApiドキュメントには、次のように記載されています。
ほとんどのトランスポートとソケットタイプでは、接続はすぐには実行されませんが、ØMQの必要に応じて実行されます。したがって、zmq_connect()の呼び出しが成功したからといって、接続が実際に確立された、または確立された可能性があるという意味ではありません。このため、ほとんどのトランスポートおよびソケットタイプでは、サーバーソケットがバインドされ、クライアントソケットがそれに接続される順序は重要ではありません。最初の例外は、inproc://トランスポートを使用する場合です。zmq_connect()を呼び出す前にzmq_bind()を呼び出す必要があります。2番目の例外はZMQ_PAIRソケットで、エンドポイントに自動的に再接続しません。
ドキュメントに見られるように、応答しない/存在しないエンドポイントのエラーコードはありません。基本的に、有効なエンドポイントを提供する限り(たとえば、プロセスごとのソケットの制限に達しない限り)、問題はありません。