方法
自:2.22
声明 [源]
gssize
g_socket_send (
GSocket* socket,
const gchar* buffer,
gsize size,
GCancellable* cancellable,
GError** error
)
描述 [源]
尝试从套接字发送来自缓冲区的size
字节数据。这主要用于面向连接的套接字;这等同于在address
设置为NULL
的情况下调用g_socket_send_to()
。
如果套接字处于阻塞模式,调用将阻塞,直到套接字队列有空间可以容纳数据。如果没有可用的空间且套接字处于非阻塞模式,将返回G_IO_ERROR_WOULD_BLOCK
错误。要通知释放空间时,等待G_IO_OUT
条件。注意,即使你之前已经收到了G_IO_OUT
条件的通知,g_socket_send()
也可能返回G_IO_ERROR_WOULD_BLOCK
错误。(在Windows特别常见,这是由于底层API的工作方式导致的。)
出错时返回-1,并将error
设置相应地。
自2.22版以来可用。
参数
buffer
-
类型:一个
guint8
数组包含要发送数据的缓冲区。
数组长度由 size
参数指定。数据归调用者所有。 size
-
类型:
gsize
要发送的字节数。
cancellable
-
类型:
GCancellable
一个%GCancellable或
NULL
。该参数可以是 NULL
。数据归调用者所有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
该参数可以是 NULL
。如果返回位置不是 NULL
,则必须将其初始化为一个NULL
GError*
。如果没有错误,该方法将保留初始化为 NULL
的参数。在出错的情况下,该参数将被设置为一个新分配的 GError
;调用者将接管数据的所有权,并负责释放它。