Sockets (Java SE 14 & JDK 14)
Description: declaration: module: jdk.net, package: jdk.net, class: Sockets
Keywords: jdk.net.Sockets class

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

  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 Details

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