2

私は、ZeroMQ の C インターフェイスを使用して、計算を複数のマシンに分散させています。ローカルでは、すべてが期待どおりに動作しtcp://localhost:5555ます。ただし、2 台のマシン A と B でクライアントとサーバーを実行している場合、要求と応答は、サーバーが A で実行され、クライアントが B で実行されている場合にのみ機能します。逆の場合は、要求のみが B で受信され、 A のクライアントは応答を受け取りません。

すべてを正しくセットアップしたことを確認するために、ZeroMQ ガイドの最初のをコンパイルしましたが、同じ問題があります。

この動作の原因は何ですか?

4

1 に答える 1

2

この問題は、0MQ の 2 つの互換性のないバージョンが原因である可能性が最も高いです。

これは、0MQ v3.0.x、3.1.x、3.2.0、3.2.1 の既知の問題です。これらのバージョンはすべて、文書化されていない互換性のないバージョンのプロトコル (バージョン番号がないため、相互運用するのが非常に困難) を使用していましたが、最終的に 3.2.2 安定版で修正されました。古いバージョンを実行していて、これが使用している言語バインディングに付属している可能性がある場合は、アップグレードしてください。アップグレードできない重大な理由がある場合、たとえば、古いバージョンを使用しているクライアントが世界中にいる場合は、zeromq-dev リストで質問してください。誰かが助けてくれるかもしれません。価値があるのは、プロトコルにバージョン番号が付けられ、以前の安定版リリース (2.2 および 2.1) と下位互換性があることです。

于 2013-01-07T21:39:00.667 に答える