名称
zmq_msg_get - 获取消息属性
概要
int zmq_msg_get (zmq_msg_t '*message', int 'property');
描述
zmq_msg_get() 函数应返回由 `property` 参数指定的消息属性的值,该消息由 `message` 参数指向。
可以使用 zmq_msg_get() 函数检索以下属性:
- ZMQ_MORE
-
指示在该消息之后还有更多的消息帧。
- ZMQ_SRCFD
-
返回读取该消息的套接字的文件描述符。这允许应用程序通过
getpeername(2)检索远程端点。请注意,相应的套接字可能已经关闭,甚至被重用。目前仅为 TCP 套接字实现此功能。 - ZMQ_SHARED
-
指示消息可能与此消息的另一个副本共享底层存储。
返回值
如果成功,zmq_msg_get() 函数应返回属性的值。否则,应返回 -1 并将 `errno` 设置为下面定义的值之一。
错误
- EINVAL
-
请求的 属性 未知。
示例
接收多帧消息
zmq_msg_t frame;
while (true) {
// Create an empty 0MQ message to hold the message frame
int rc = zmq_msg_init (&frame);
assert (rc == 0);
// Block until a message is available to be received from socket
rc = zmq_msg_recv (socket, &frame, 0);
assert (rc != -1);
if (zmq_msg_get (&frame, ZMQ_MORE))
fprintf (stderr, "more\n");
else {
fprintf (stderr, "end\n");
break;
}
zmq_msg_close (&frame);
}
作者
本页面由 0MQ 社区编写。要进行更改,请阅读 0MQ 贡献政策,链接为 https://zeromq.cn/how-to-contribute/。