### Method

# Gio Socket shutdown

since: 2.22

#### Declaration

    gboolean
    g_socket_shutdown (
      GSocket* socket,
      gboolean shutdown_read,
      gboolean shutdown_write,
      GError** error
    )

#### Description

Shut down part or all of a full-duplex connection.

If `shutdown_read` is `TRUE` then the receiving side of the connection is shut down, and further reading is disallowed.

If `shutdown_write` is `TRUE` then the sending side of the connection is shut down, and further writing is disallowed.

It is allowed for both `shutdown_read` and `shutdown_write` to be `TRUE`.

One example where it is useful to shut down only one side of a connection is graceful disconnect for TCP connections where you close the sending side, then wait for the other side to close the connection, thus ensuring that the other side saw all sent data.

Available since: 2.22

#### Parameters

`shutdown_read`

  Type: `gboolean`

  Whether to shut down the read side.

`shutdown_write`

  Type: `gboolean`

  Whether to shut down the write side.

`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 a `NULL` `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.

#### Return value

Type: `gboolean`

`TRUE` on success, `FALSE` on error.