结构体
gioInputMessage
自:2.48
描述 [源]
struct GInputMessage {
GSocketAddress** address;
GInputVector* vectors;
guint num_vectors;
gsize bytes_received;
gint flags;
GSocketControlMessage*** control_messages;
guint* num_control_messages;
}
用于在接收多个消息或数据包时进行 gather/scatter 数据输入的结构体。通常传递一个空的 GInputVectors
数组,操作将使用所有缓冲区作为一个缓冲区,并将 bytes_received
设置为所有 GInputVectors
收到的总字节数。
此结构体与 POSIX 套接字 API 中的 struct mmsghdr
和 struct msghdr
领域非常相似(参见 man 2 recvmmsg
)。
如果 address
不为 NULL
,则它将被设置为接收消息的源地址,调用者必须之后释放它。
如果 control_messages
不为 NULL
,则它将被设置为一个数组,该数组包含与消息一起接收到的控制消息(如果有),调用者必须之后释放它。 num_control_messages
被设置为该数组的元素数量,该数量可能为零。
与此消息相关的标志将返回到 flags
。例如,MSG_EOR
或 MSG_TRUNC
。
结构体成员
address
GSocketAddress
的返回位置,或NULL
。vectors
指向输入向量的数组的指针。
vectors 的数量
vectors
指向的输入向量的数量。bytes_received
将设置为已接收的字节数。
flags
返回由调用产生的接收消息的
GSocketMsgFlags
集合。control_messages
GSocketControlMessages
调用者分配的数组的返回位置,或NULL
。num_control_messages
返回
control_messages
中的元素数量。
自:2.48