名称
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/。