0

pyzmq(サーバーから) 2 つのランダムなポートを受信し、それらに接続する C-ZMQ クライアントを取得しました。

通常、すべてが機能していますが、2 番目の接続が errno に設定されて失敗することがありますEINVAL。(接続呼び出しを切り替えても、2番目はまだ失敗しました)。

ポート番号は問題なく、ZeroMQ である種の競合状態のように見えます。

どうすればこの問題を解決できるか知っている人はいますか?

[編集]:

サーバーはこの構造でポートを送信します " port1:port2" たとえば " " サーバーと クライアント1234:1235のパケットの 16 進ダンプは" "31 32 33 34 3a 31 32 33 3531 32 33 34 3a 31 32 33 35 01

そして、余分なバイトが2番目の接続に失敗するため...

たぶん、これはzmq バージョン 2.2.0 を使用しているpyzmqとの間のある種の互換性バグです。zmq

4

1 に答える 1

0

これは zmq の競合状態ではなく、zmq_connect の問題でもありません。その余分な 0x01 バイトは、おそらく問題があります。それを zmq_connect に渡す場合、EINVAL 以外にどのような結果が期待されますか?

では、余分なバイトはどこから来るのでしょうか? 2 つのピア間で送信されるすべてのメッセージでそれを取得しますか? このプログラムで他に行っていることは何ですか?

ソース コードを提供していないため、これ以上詳細なアドバイスを提供することは困難です。

于 2012-11-21T05:52:55.337 に答える