方法
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
一个
GCancellable
或NULL
。参数可以是 NULL
。数据由该方法调用者拥有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
参数可以是 NULL
。如果返回位置不是 NULL
,则您必须将其初始化为NULL
GError*
。如果没有错误,方法将保留初始化的参数为 NULL
。如有错误,参数将设置为一个新的 GError
;调用者将接管数据,并负责释放它。
返回值
类型: GBytes
包含接收到的字节的字节数组缓冲区,或者在错误情况下为 NULL
。
该方法调用者拥有返回数据的所有权,并负责释放它。 |