## Uses of Interface
java.net.SocketOption

- Packages that use SocketOption
  Package | Description
  --- | ---
  com.sun.nio.sctp | A Java API for Stream Control Transport Protocol.
  java.net | Provides the classes for implementing networking applications.
  java.nio.channels | Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.
  jdk.net | Platform specific socket options for the `java.net` and `java.nio.channels` socket classes.

- - ### Uses of SocketOption in com.sun.nio.sctp

    Subinterfaces of SocketOption in com.sun.nio.sctp
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `SctpSocketOption<T>` | A socket option associated with an SCTP channel.

  - ### Uses of SocketOption in java.net

    Fields in java.net declared as SocketOption
    Modifier and Type | Field | Description
    --- | --- | ---
    `static SocketOption<NetworkInterface>` | StandardSocketOptions.`IP_MULTICAST_IF` | The network interface for Internet Protocol (IP) multicast datagrams.
    `static SocketOption<Boolean>` | StandardSocketOptions.`IP_MULTICAST_LOOP` | Loopback for Internet Protocol (IP) multicast datagrams.
    `static SocketOption<Integer>` | StandardSocketOptions.`IP_MULTICAST_TTL` | The time-to-live for Internet Protocol (IP) multicast datagrams.
    `static SocketOption<Integer>` | StandardSocketOptions.`IP_TOS` | The Type of Service (ToS) octet in the Internet Protocol (IP) header.
    `static SocketOption<Boolean>` | StandardSocketOptions.`SO_BROADCAST` | Allow transmission of broadcast datagrams.
    `static SocketOption<Boolean>` | StandardSocketOptions.`SO_KEEPALIVE` | Keep connection alive.
    `static SocketOption<Integer>` | StandardSocketOptions.`SO_LINGER` | Linger on close if data is present.
    `static SocketOption<Integer>` | StandardSocketOptions.`SO_RCVBUF` | The size of the socket receive buffer.
    `static SocketOption<Boolean>` | StandardSocketOptions.`SO_REUSEADDR` | Re-use address.
    `static SocketOption<Boolean>` | StandardSocketOptions.`SO_REUSEPORT` | Re-use port.
    `static SocketOption<Integer>` | StandardSocketOptions.`SO_SNDBUF` | The size of the socket send buffer.
    `static SocketOption<Boolean>` | StandardSocketOptions.`TCP_NODELAY` | Disable the Nagle algorithm.

    Methods in java.net that return types with arguments of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<SocketOption<?>>` | DatagramSocket.`supportedOptions()` | Returns a set of the socket options supported by this socket.
    `protected Set<SocketOption<?>>` | DatagramSocketImpl.`supportedOptions()` | Returns a set of SocketOptions supported by this impl and by this impl's socket (DatagramSocket or MulticastSocket)
    `Set<SocketOption<?>>` | ServerSocket.`supportedOptions()` | Returns a set of the socket options supported by this server socket.
    `Set<SocketOption<?>>` | Socket.`supportedOptions()` | Returns a set of the socket options supported by this socket.
    `protected Set<SocketOption<?>>` | SocketImpl.`supportedOptions()` | Returns a set of SocketOptions supported by this impl and by this impl's socket (Socket or ServerSocket)

    Methods in java.net with parameters of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> T` | DatagramSocket.`getOption​(SocketOption<T> name)` | Returns the value of a socket option.
    `protected <T> T` | DatagramSocketImpl.`getOption​(SocketOption<T> name)` | Called to get a socket option.
    `<T> T` | ServerSocket.`getOption​(SocketOption<T> name)` | Returns the value of a socket option.
    `<T> T` | Socket.`getOption​(SocketOption<T> name)` | Returns the value of a socket option.
    `protected <T> T` | SocketImpl.`getOption​(SocketOption<T> name)` | Called to get a socket option.
    `<T> DatagramSocket` | DatagramSocket.`setOption​(SocketOption<T> name, T value)` | Sets the value of a socket option.
    `protected <T> void` | DatagramSocketImpl.`setOption​(SocketOption<T> name, T value)` | Called to set a socket option.
    `<T> ServerSocket` | ServerSocket.`setOption​(SocketOption<T> name, T value)` | Sets the value of a socket option.
    `<T> Socket` | Socket.`setOption​(SocketOption<T> name, T value)` | Sets the value of a socket option.
    `protected <T> void` | SocketImpl.`setOption​(SocketOption<T> name, T value)` | Called to set a socket option.

  - ### Uses of SocketOption in java.nio.channels

    Methods in java.nio.channels that return types with arguments of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<SocketOption<?>>` | NetworkChannel.`supportedOptions()` | Returns a set of the socket options supported by this channel.

    Methods in java.nio.channels with parameters of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> T` | NetworkChannel.`getOption​(SocketOption<T> name)` | Returns the value of a socket option.
    `abstract <T> AsynchronousServerSocketChannel` | AsynchronousServerSocketChannel.`setOption​(SocketOption<T> name, T value)` |
    `abstract <T> AsynchronousSocketChannel` | AsynchronousSocketChannel.`setOption​(SocketOption<T> name, T value)` |
    `abstract <T> DatagramChannel` | DatagramChannel.`setOption​(SocketOption<T> name, T value)` |
    `<T> NetworkChannel` | NetworkChannel.`setOption​(SocketOption<T> name, T value)` | Sets the value of a socket option.
    `abstract <T> ServerSocketChannel` | ServerSocketChannel.`setOption​(SocketOption<T> name, T value)` |
    `abstract <T> SocketChannel` | SocketChannel.`setOption​(SocketOption<T> name, T value)` |

  - ### Uses of SocketOption in jdk.net

    Fields in jdk.net declared as SocketOption
    Modifier and Type | Field | Description
    --- | --- | ---
    `static SocketOption<SocketFlow>` | ExtendedSocketOptions.`SO_FLOW_SLA` | Service level properties.
    `static SocketOption<Integer>` | ExtendedSocketOptions.`TCP_KEEPCOUNT` | Keep-Alive retransmission maximum limit.
    `static SocketOption<Integer>` | ExtendedSocketOptions.`TCP_KEEPIDLE` | Keep-Alive idle time.
    `static SocketOption<Integer>` | ExtendedSocketOptions.`TCP_KEEPINTERVAL` | Keep-Alive retransmission interval time.
    `static SocketOption<Boolean>` | ExtendedSocketOptions.`TCP_QUICKACK` | Disable Delayed Acknowledgements.

    Methods in jdk.net that return types with arguments of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Set<SocketOption<?>>` | Sockets.`supportedOptions​(Class<?> socketType)` | Returns a set of `SocketOption`s supported by the given socket type.

    Methods in jdk.net with parameters of type SocketOption
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> T` | Sockets.`getOption​(DatagramSocket s, SocketOption<T> name)` | Returns the value of a socket option from a `DatagramSocket` or `MulticastSocket`
    `static <T> T` | Sockets.`getOption​(ServerSocket s, SocketOption<T> name)` | Returns the value of a socket option from a `ServerSocket`
    `static <T> T` | Sockets.`getOption​(Socket s, SocketOption<T> name)` | Returns the value of a socket option from a `Socket`
    `static <T> void` | Sockets.`setOption​(DatagramSocket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `DatagramSocket` or `MulticastSocket`
    `static <T> void` | Sockets.`setOption​(ServerSocket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `ServerSocket`
    `static <T> void` | Sockets.`setOption​(Socket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `Socket`