方法

GioSocketreceive_bytes_from

since: 2.80

声明 [src]

GBytes*
g_socket_receive_bytes_from (
  GSocket* socket,
  GSocketAddress** address,
  gsize size,
  gint64 timeout_us,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

从套接字接收数据(最多 size 字节)。

该函数是 g_socket_receive_from() 的变体,返回一个 GBytes 而非普通缓冲区。

如果 address 非空,则 address 将设置为接收分组的源地址。

地址由调用者拥有。

-1 传递给 timeout_us 以无限期阻塞,直到接收到数据(或连接关闭,或出现错误)。传递 0 以使用默认超时时间从 GSocket:timeout,或传递一个正数在返回 G_IO_ERROR_TIMED_OUT 之前等待那么多的微秒数等待数据。

自 2.80 版本起可用。

参数

address

类型: GSocketAddress

用于获取 GSocketAddress 的返回位置。

函数将设置该参数。
参数可以是 NULL
该方法调用者拥有返回数据的所有权,并负责释放它。
size

类型: gsize

您想从套接字中读取的字节数。

timeout_us

类型: gint64

等待的超时时间,以微秒为单位,或 -1 以无限期阻塞。

cancellable

类型: GCancellable

一个 GCancellableNULL

参数可以是 NULL
数据由该方法调用者拥有。
error

类型: GError **

用于可恢复错误的返回位置。

参数可以是 NULL
如果返回位置不是 NULL,则您必须将其初始化为 NULL GError*
如果没有错误,方法将保留初始化的参数为 NULL
如有错误,参数将设置为一个新的 GError;调用者将接管数据,并负责释放它。

返回值

类型: GBytes

包含接收到的字节的字节数组缓冲区,或者在错误情况下为 NULL

该方法调用者拥有返回数据的所有权,并负责释放它。