方法
GiSocketsend_message_with_timeout
自:2.60
声明 [源]
GPollableReturn
g_socket_send_message_with_timeout (
GSocket* socket,
GSocketAddress* address,
const GOutputVector* vectors,
gint num_vectors,
GSocketControlMessage** messages,
gint num_messages,
gint flags,
gint64 timeout_us,
gsize* bytes_written,
GCancellable* cancellable,
GError** error
)
描述 [源]
此行为与 g_socket_send_message() 完全相同,只是超时行为的选择是由 timeout_us 参数决定的,而不是由 socket‘ 的属性决定的。
如果出错,返回 G_POLLABLE_RETURN_FAILED 并相应地设置 error,或者如果套接字当前不可写,返回 G_POLLABLE_RETURN_WOULD_BLOCK。在这两种情况下,bytes_written 都将包含 0。
自:2.60
参数
address-
类型:
GSocketAddressGSocketAddress,或NULL。参数可以是 NULL。数据由方法调用者拥有。 向量-
类型: 一个
GOutputVector数组GOutputVector结构体数组的数组。数组长度由 num_vectors参数指定。数据由方法调用者拥有。 num_vectors-
类型:
gintvectors中的元素数量,或 -1。 messages-
类型: 一个
GSocketControlMessage*数组一个指向
GSocketControlMessages数组的指针,或NULL。参数可以是 NULL。数组长度由 num_messages参数指定。数据由方法调用者拥有。 num_messages-
类型:
gintmessages中的元素数量,或 -1。 flags-
类型:
gint包含
GSocketMsgFlags标志的一个 int,可能还包含其他平台特定标志。 timeout_us-
类型:
gint64等待的最大时间(微秒),或 -1。
bytes_written-
类型:
gsize*存储写入套接字中的字节数的位置。
函数会设置此参数。 参数可以是 NULL。 cancellable-
类型:
GCancellable一个 %GCancellable 或
NULL。参数可以是 NULL。数据由方法调用者拥有。 error-
类型:
GError **用于恢复错误的位置。
参数可以是 NULL。如果返回位置不是 NULL,则必须将其初始化为NULLGError*。如果没有错误,方法将保留初始化为 NULL。如果出现错误,将设置一个新分配的 GError;调用者将负载数据,并负责释放它。
返回值
类型: GPollableReturn
如果所有数据都成功写入,则返回 G_POLLABLE_RETURN_OK;如果套接字当前不可写,则返回 G_POLLABLE_RETURN_WOULD_BLOCK;如果发生错误且设置了 error,则返回 G_POLLABLE_RETURN_FAILED。