方法
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
-
类型:
GSocketAddress
GSocketAddress
,或NULL
。参数可以是 NULL
。数据由方法调用者拥有。 向量
-
类型: 一个
GOutputVector
数组GOutputVector
结构体数组的数组。数组长度由 num_vectors
参数指定。数据由方法调用者拥有。 num_vectors
-
类型:
gint
vectors
中的元素数量,或 -1。 messages
-
类型: 一个
GSocketControlMessage*
数组一个指向
GSocketControlMessages
数组的指针,或NULL
。参数可以是 NULL
。数组长度由 num_messages
参数指定。数据由方法调用者拥有。 num_messages
-
类型:
gint
messages
中的元素数量,或 -1。 flags
-
类型:
gint
包含
GSocketMsgFlags
标志的一个 int,可能还包含其他平台特定标志。 timeout_us
-
类型:
gint64
等待的最大时间(微秒),或 -1。
bytes_written
-
类型:
gsize*
存储写入套接字中的字节数的位置。
函数会设置此参数。 参数可以是 NULL
。 cancellable
-
类型:
GCancellable
一个 %GCancellable 或
NULL
。参数可以是 NULL
。数据由方法调用者拥有。 error
-
类型:
GError **
用于恢复错误的位置。
参数可以是 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
GError*
。如果没有错误,方法将保留初始化为 NULL
。如果出现错误,将设置一个新分配的 GError
;调用者将负载数据,并负责释放它。
返回值
类型: GPollableReturn
如果所有数据都成功写入,则返回 G_POLLABLE_RETURN_OK
;如果套接字当前不可写,则返回 G_POLLABLE_RETURN_WOULD_BLOCK
;如果发生错误且设置了 error
,则返回 G_POLLABLE_RETURN_FAILED
。