nanomsg是否有"帧"的概念作为zeromq?
Does nanomsg have the concept of 'frames' as zeromq?
我使用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;
和send,接收端是否会得到相同的iovec数组,每个元素中都有"Hello"answers"World",还是nanomsg可以自由地重新组装缓冲区?
谢谢拉尔夫
nanomsg-1.0.0已经支持iovnn_sendmsg
目前在文档中对此没有任何说明,但我确信nanomsg确保接收到的iovec
的结构与发送的结构相同,因为存在一个单元测试(参见https://github.com/nanomsg/nanomsg/blob/fb5670c952c53834c5c7c989eace7c6bd54bd4c5/tests/iovec.c),这证实了我的假设。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 如何监控ZeroMQ服务器是否存在
- ZeroMQ 中的 SUB 订阅者是否像 ROS 中那样具有任何"callback"机制?
- ZeroMQ是否允许多个服务器套接字
- ZeroMQ是否有数据到达时的通知/回调事件/消息
- ZeroMQ / NetMQ - 是否可以定义"client"的源端口
- 使用ZeroMQ构建点对点工作负载调度器是否有帮助?
- nanomsg是否有"帧"的概念作为zeromq?