方法

自: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;调用者将接管数据的所有权,并负责释放它。

返回值

类型:gssize

写入的字节数(可能小于size),或者出错时返回-1。