Method
GioSocketreceive
since: 2.22
Declaration [src]
gssize
g_socket_receive (
GSocket* socket,
gchar* buffer,
gsize size,
GCancellable* cancellable,
GError** error
)
Description [src]
Receive data (up to size
bytes) from a socket. This is mainly used by
connection-oriented sockets; it is identical to g_socket_receive_from()
with address
set to NULL
.
For G_SOCKET_TYPE_DATAGRAM
and G_SOCKET_TYPE_SEQPACKET
sockets,
g_socket_receive()
will always read either 0 or 1 complete messages from
the socket. If the received message is too large to fit in buffer
, then
the data beyond size
bytes will be discarded, without any explicit
indication that this has occurred.
For G_SOCKET_TYPE_STREAM
sockets, g_socket_receive()
can return any
number of bytes, up to size
. If more than size
bytes have been
received, the additional data will be returned in future calls to g_socket_receive().
If the socket is in blocking mode the call will block until there
is some data to receive, the connection is closed, or there is an
error. If there is no data available and the socket is in
non-blocking mode, a G_IO_ERROR_WOULD_BLOCK
error will be
returned. To be notified when data is available, wait for the
G_IO_IN
condition.
On error -1 is returned and error
is set accordingly.
Available since: 2.22
Parameters
buffer
-
Type: An array of
guint8
a buffer to read data into (which should be at least `size` bytes long).
The argument will be set by the function. The length of the array is specified in the size
argument.The returned data is owned by the instance. size
-
Type:
gsize
The number of bytes you want to read from the socket.
cancellable
-
Type:
GCancellable
A %GCancellable or
NULL
.The argument can be NULL
.The data is owned by the caller of the method. error
-
Type:
GError **
The return location for a recoverable error.
The argument can be NULL
.If the return location is not NULL
, then you must initialize it to aNULL
GError*
.The argument will be left initialized to NULL
by the method if there are no errors.In case of error, the argument will be set to a newly allocated GError
; the caller will take ownership of the data, and be responsible for freeing it.