1. zmsg_first()
zframe_t* frame = zmsg_first(msg);
// Set cursor to first frame in message. Returns frame, or NULL, if the
// message is empty. Use this to navigate the frames as a list.
// 将光标设置为消息中的第一帧。 返回frame,或NULL,如果消息为空。 使用这个列表来浏览框架。
CZMQ_EXPORT zframe_t *
zmsg_first (zmsg_t *self);
2.zmsg_next()
frame = zmsg_next(msg);
// Return the next frame. If there are no more frames, returns NULL. To move
// to the first frame call zmsg_first(). Advances the cursor.
CZMQ_EXPORT zframe_t *
zmsg_next (zmsg_t *self);
3.zframe_data()
const char* data = (const char*)zframe_data(frame);
// Return address of frame data
CZMQ_EXPORT byte *
zframe_data (zframe_t *self);
3.zframe_size()
zframe_size(frame)
// Return number of bytes in frame data
CZMQ_EXPORT size_t
zframe_size (zframe_t *self);