2

私はしばらくの間 zeromq を使用しており、マルチパート メッセージを広範囲に使用しています。C++ では、zmq_sendiov/zmq_recviov を使用してマルチパート メッセージを送受信します。利点は、各メッセージの「フレーム」を 1 つの iovec に入れ、一度に send/recv の呼び出しを使用できることです。

最近、nanomsg を試してみることにしました。nanomsg には、iovec も使用する nn_sendmsg/nn_sendmsg があることに気付きました。問題は、nanomsg は、受信した iovec の構造が送信されたものと同じであることを確認しますか? たとえば、私が入れたとします

msg[0].iov_base = "Hello";
msg[0].iov_len = 5;
msg[1].iov_base = "World";
msg[1].iov_len = 5;

そして送信すると、受信側は各要素に「Hello」と「World」を含む同じiovec配列を取得しますか、それともnanomsgは自由にバッファを再構築できますか?

ありがとうラルフ

4

2 に答える 2

1

現在、これに関するドキュメントには何も書かれていませんが、nanomsg はiovec、1 つの単体テストが存在するため、受信される構造が送信される構造と同じであることを確認します ( https://github.com/nanomsg/を参照)。 nanomsg/blob/fb5670c952c53834c5c7c989eace7c6bd54bd4c5/tests/iovec.c )、これは私の仮定を確認します。

于 2015-09-30T15:56:43.637 に答える