Socket.receiveBytesFrom

glib.bytes.Bytes receiveBytesFrom(out gio.socket_address.SocketAddress address, size_t size, long timeoutUs, gio.cancellable.Cancellable cancellable = null)

Receive data (up to size bytes) from a socket.

This function is a variant of [gio.socket.Socket.receiveFrom] which returns a [glib.bytes.Bytes] rather than a plain buffer.

If address is non-null then address will be set equal to the source address of the received packet.

The address is owned by the caller.

Pass -1 to timeout_us to block indefinitely until data is received (or the connection is closed, or there is an error). Pass 0 to use the default timeout from [gio.socket.Socket.timeout], or pass a positive number to wait for that many microseconds for data before returning [gio.types.IOErrorEnum.TimedOut].

Parameters

addressreturn location for a #GSocketAddress
sizethe number of bytes you want to read from the socket
timeoutUsthe timeout to wait for, in microseconds, or -1 to block indefinitely
cancellablea #GCancellable, or NULL

Returns

a bytes buffer containing the

received bytes, or NULL on error

Throws

[ErrorWrap]