我一直在使用 zeromq 一段时间,并广泛使用多部分消息。在 C++ 中,我使用 zmq_sendiov/zmq_recviov 来发送/接收多部分消息。好处是我可以将每个消息“帧”放在一个 iovec 中,并一次使用调用发送/接收。
最近我决定试试 nanomsg,我意识到 nanomsg 有 nn_sendmsg/nn_sendmsg 也使用 iovec。问题是:nanomsg 是否确保收到的 iovec 的结构与发送的相同?例如,假设我把
msg[0].iov_base = "Hello";
msg[0].iov_len = 5;
msg[1].iov_base = "World";
msg[1].iov_len = 5;
和发送,接收端会得到相同的iovec数组,每个元素都有“Hello”和“World”,还是nanomsg可以自由地重新组装缓冲区?
谢谢拉尔夫