结构体

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 mmsghdrstruct msghdr 领域非常相似(参见 man 2 recvmmsg)。

如果 address 不为 NULL,则它将被设置为接收消息的源地址,调用者必须之后释放它。

如果 control_messages 不为 NULL,则它将被设置为一个数组,该数组包含与消息一起接收到的控制消息(如果有),调用者必须之后释放它。 num_control_messages 被设置为该数组的元素数量,该数量可能为零。

与此消息相关的标志将返回到 flags。例如,MSG_EORMSG_TRUNC

结构体成员
address

GSocketAddress 的返回位置,或 NULL

vectors

指向输入向量的数组的指针。

vectors 的数量

vectors 指向的输入向量的数量。

bytes_received

将设置为已接收的字节数。

flags

返回由调用产生的接收消息的 GSocketMsgFlags 集合。

control_messages

GSocketControlMessages 调用者分配的数组的返回位置,或 NULL

num_control_messages

返回 control_messages 中的元素数量。

自:2.48