### Method

# Gio Socket join_multicast_group

since: 2.32

#### Declaration

    gboolean
    g_socket_join_multicast_group (
      GSocket* socket,
      GInetAddress* group,
      gboolean source_specific,
      const gchar* iface,
      GError** error
    )

#### Description

Registers `socket` to receive multicast messages sent to `group`. `socket` must be a `G_SOCKET_TYPE_DATAGRAM` socket, and must have been bound to an appropriate interface and port with g_socket_bind().

If `iface` is `NULL`, the system will automatically pick an interface to bind to based on `group`.

If `source_specific` is `TRUE`, source-specific multicast as defined in RFC 4604 is used. Note that on older platforms this may fail with a `G_IO_ERROR_NOT_SUPPORTED` error.

To bind to a given source-specific multicast address, use `g_socket_join_multicast_group_ssm()` instead.

Available since: 2.32

#### Parameters

`group`

  Type: `GInetAddress`

  A `GInetAddress` specifying the group address to join.

  The data is owned by the caller of the method.

`source_specific`

  Type: `gboolean`

  `TRUE` if source-specific multicast should be used.

`iface`

  Type: `const gchar*`

  Name of the interface to use, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

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