Module jdk.net
Package jdk.net

## Class Sockets

- java.lang.Object
- - jdk.net.Sockets

-     public class Sockets
      extends Object

  Defines static methods to set and get socket options defined by the `SocketOption` interface. All of the standard options defined by `Socket`, `ServerSocket`, and `DatagramSocket` can be set this way, as well as additional or platform specific options supported by each socket type.

  The `supportedOptions(Class)` method can be called to determine the complete set of options available (per socket type) on the current system.

  When a security manager is installed, some non-standard socket options may require a security permission before being set or get. The details are specified in `ExtendedSocketOptions`. No permission is required for `StandardSocketOptions`.

  See Also:
    `NetworkChannel`

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> T` | `getOption​(DatagramSocket s, SocketOption<T> name)` | Returns the value of a socket option from a `DatagramSocket` or `MulticastSocket`
    `static <T> T` | `getOption​(ServerSocket s, SocketOption<T> name)` | Returns the value of a socket option from a `ServerSocket`
    `static <T> T` | `getOption​(Socket s, SocketOption<T> name)` | Returns the value of a socket option from a `Socket`
    `static <T> void` | `setOption​(DatagramSocket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `DatagramSocket` or `MulticastSocket`
    `static <T> void` | `setOption​(ServerSocket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `ServerSocket`
    `static <T> void` | `setOption​(Socket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `Socket`
    `static Set<SocketOption<?>>` | `supportedOptions​(Class<?> socketType)` | Returns a set of `SocketOption`s supported by the given socket type.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### setOption

          public static <T> void setOption​(Socket s,
                                           SocketOption<T> name,
                                           T value)
                                    throws IOException

      Sets the value of a socket option on a `Socket`
      Parameters:
        `s` - the socket
        `name` - The socket option
        `value` - The value of the socket option. May be null for some options.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IllegalArgumentException` - if the value is not valid for the option.
        `IOException` - if an I/O error occurs, or socket is closed.
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
        `NullPointerException` - if name is null
      See Also:
        `StandardSocketOptions`

    - #### getOption

          public static <T> T getOption​(Socket s,
                                        SocketOption<T> name)
                                 throws IOException

      Returns the value of a socket option from a `Socket`
      Parameters:
        `s` - the socket
        `name` - The socket option
      Returns:
        The value of the socket option.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IOException` - if an I/O error occurs
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
        `NullPointerException` - if name is null
      See Also:
        `StandardSocketOptions`

    - #### setOption

          public static <T> void setOption​(ServerSocket s,
                                           SocketOption<T> name,
                                           T value)
                                    throws IOException

      Sets the value of a socket option on a `ServerSocket`
      Parameters:
        `s` - the socket
        `name` - The socket option
        `value` - The value of the socket option.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IllegalArgumentException` - if the value is not valid for the option.
        `IOException` - if an I/O error occurs
        `NullPointerException` - if name is null
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
      See Also:
        `StandardSocketOptions`

    - #### getOption

          public static <T> T getOption​(ServerSocket s,
                                        SocketOption<T> name)
                                 throws IOException

      Returns the value of a socket option from a `ServerSocket`
      Parameters:
        `s` - the socket
        `name` - The socket option
      Returns:
        The value of the socket option.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IOException` - if an I/O error occurs
        `NullPointerException` - if name is null
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
      See Also:
        `StandardSocketOptions`

    - #### setOption

          public static <T> void setOption​(DatagramSocket s,
                                           SocketOption<T> name,
                                           T value)
                                    throws IOException

      Sets the value of a socket option on a `DatagramSocket` or `MulticastSocket`
      Parameters:
        `s` - the socket
        `name` - The socket option
        `value` - The value of the socket option.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IllegalArgumentException` - if the value is not valid for the option.
        `IOException` - if an I/O error occurs
        `NullPointerException` - if name is null
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
      See Also:
        `StandardSocketOptions`

    - #### getOption

          public static <T> T getOption​(DatagramSocket s,
                                        SocketOption<T> name)
                                 throws IOException

      Returns the value of a socket option from a `DatagramSocket` or `MulticastSocket`
      Parameters:
        `s` - the socket
        `name` - The socket option
      Returns:
        The value of the socket option.
      Throws:
        `UnsupportedOperationException` - if the socket does not support the option.
        `IOException` - if an I/O error occurs
        `NullPointerException` - if name is null
        `SecurityException` - if a security manager is set and the caller does not have any required permission.
      See Also:
        `StandardSocketOptions`

    - #### supportedOptions

          public static Set<SocketOption<?>> supportedOptions​(Class<?> socketType)

      Returns a set of `SocketOption`s supported by the given socket type. This set may include standard options and also non standard extended options.
      Parameters:
        `socketType` - the type of java.net socket
      Throws:
        `IllegalArgumentException` - if socketType is not a valid socket type from the java.net package.