since: 2.26


g_socket_receive_with_blocking (
  GSocket* socket,
  gchar* buffer,
  gsize size,
  gboolean blocking,
  GCancellable* cancellable,
  GError** error


This behaves exactly the same as g_socket_receive(), except that the choice of blocking or non-blocking behavior is determined by the blocking argument rather than by sockets properties.

Available since: 2.26



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 data is owned by the instance.

Type: gsize

The number of bytes you want to read from the socket.

The argument will be set by the function.

Type: gboolean

Whether to do blocking or non-blocking I/O.


Type: GCancellable

A %GCancellable or NULL.

The argument can be NULL.
The data is owned by the caller of the method.

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 a NULL GError*.
The argument will 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.

Return value

Type: gssize

Number of bytes read, or 0 if the connection was closed by the peer, or -1 on error.