## Uses of Class
java.net.SocketException

- Packages that use SocketException
  Package | Description
  --- | ---
  java.net | Provides the classes for implementing networking applications.

- - ### Uses of SocketException in java.net

    Subclasses of SocketException in java.net
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BindException` | Signals that an error occurred while attempting to bind a socket to a local address and port.
    `class` | `ConnectException` | Signals that an error occurred while attempting to connect a socket to a remote address and port.
    `class` | `NoRouteToHostException` | Signals that an error occurred while attempting to connect a socket to a remote address and port.
    `class` | `PortUnreachableException` | Signals that an ICMP Port Unreachable message has been received on a connected datagram.

    Methods in java.net that throw SocketException
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | DatagramSocket.`bind​(SocketAddress addr)` | Binds this DatagramSocket to a specific address and port.
    `protected abstract void` | DatagramSocketImpl.`bind​(int lport, InetAddress laddr)` | Binds a datagram socket to a local port and address.
    `void` | DatagramSocket.`connect​(SocketAddress addr)` | Connects this socket to a remote socket address (IP address + port number).
    `protected void` | DatagramSocketImpl.`connect​(InetAddress address, int port)` | Connects a datagram socket to a remote destination.
    `protected abstract void` | DatagramSocketImpl.`create()` | Creates a datagram socket.
    `boolean` | DatagramSocket.`getBroadcast()` | Tests if SO_BROADCAST is enabled.
    `static NetworkInterface` | NetworkInterface.`getByIndex​(int index)` | Get a network interface given its index.
    `static NetworkInterface` | NetworkInterface.`getByInetAddress​(InetAddress addr)` | Convenience method to search for a network interface that has the specified Internet Protocol (IP) address bound to it.
    `static NetworkInterface` | NetworkInterface.`getByName​(String name)` | Searches for the network interface with the specified name.
    `byte[]` | NetworkInterface.`getHardwareAddress()` | Returns the hardware address (usually MAC) of the interface if it has one and if it can be accessed given the current privileges.
    `InetAddress` | MulticastSocket.`getInterface()` | Retrieve the address of the network interface used for multicast packets.
    `boolean` | Socket.`getKeepAlive()` | Tests if `SO_KEEPALIVE` is enabled.
    `boolean` | MulticastSocket.`getLoopbackMode()` | Get the setting for local loopback of multicast datagrams.
    `int` | NetworkInterface.`getMTU()` | Returns the Maximum Transmission Unit (MTU) of this interface.
    `NetworkInterface` | MulticastSocket.`getNetworkInterface()` | Get the multicast network interface set.
    `static Enumeration<NetworkInterface>` | NetworkInterface.`getNetworkInterfaces()` | Returns an `Enumeration` of all the interfaces on this machine.
    `boolean` | Socket.`getOOBInline()` | Tests if `SO_OOBINLINE` is enabled.
    `Object` | SocketOptions.`getOption​(int optID)` | Fetch the value of an option.
    `int` | DatagramSocket.`getReceiveBufferSize()` | Get value of the SO_RCVBUF option for this `DatagramSocket`, that is the buffer size used by the platform for input on this `DatagramSocket`.
    `int` | ServerSocket.`getReceiveBufferSize()` | Gets the value of the `SO_RCVBUF` option for this `ServerSocket`, that is the proposed buffer size that will be used for Sockets accepted from this `ServerSocket`.
    `int` | Socket.`getReceiveBufferSize()` | Gets the value of the `SO_RCVBUF` option for this `Socket`, that is the buffer size used by the platform for input on this `Socket`.
    `boolean` | DatagramSocket.`getReuseAddress()` | Tests if SO_REUSEADDR is enabled.
    `boolean` | ServerSocket.`getReuseAddress()` | Tests if `SO_REUSEADDR` is enabled.
    `boolean` | Socket.`getReuseAddress()` | Tests if `SO_REUSEADDR` is enabled.
    `int` | DatagramSocket.`getSendBufferSize()` | Get value of the SO_SNDBUF option for this `DatagramSocket`, that is the buffer size used by the platform for output on this `DatagramSocket`.
    `int` | Socket.`getSendBufferSize()` | Get value of the `SO_SNDBUF` option for this `Socket`, that is the buffer size used by the platform for output on this `Socket`.
    `int` | Socket.`getSoLinger()` | Returns setting for `SO_LINGER`.
    `int` | DatagramSocket.`getSoTimeout()` | Retrieve setting for SO_TIMEOUT. 0 returns implies that the option is disabled (i.e., timeout of infinity).
    `int` | Socket.`getSoTimeout()` | Returns setting for `SO_TIMEOUT`. 0 returns implies that the option is disabled (i.e., timeout of infinity).
    `boolean` | Socket.`getTcpNoDelay()` | Tests if `TCP_NODELAY` is enabled.
    `int` | DatagramSocket.`getTrafficClass()` | Gets traffic class or type-of-service in the IP datagram header for packets sent from this DatagramSocket.
    `int` | Socket.`getTrafficClass()` | Gets traffic class or type-of-service in the IP header for packets sent from this Socket
    `boolean` | NetworkInterface.`isLoopback()` | Returns whether a network interface is a loopback interface.
    `boolean` | NetworkInterface.`isPointToPoint()` | Returns whether a network interface is a point to point interface.
    `boolean` | NetworkInterface.`isUp()` | Returns whether a network interface is up and running.
    `static Stream<NetworkInterface>` | NetworkInterface.`networkInterfaces()` | Returns a `Stream` of all the interfaces on this machine.
    `void` | DatagramSocket.`setBroadcast​(boolean on)` | Enable/disable SO_BROADCAST.
    `void` | MulticastSocket.`setInterface​(InetAddress inf)` | Set the multicast network interface used by methods whose behavior would be affected by the value of the network interface.
    `void` | Socket.`setKeepAlive​(boolean on)` | Enable/disable `SO_KEEPALIVE`.
    `void` | MulticastSocket.`setLoopbackMode​(boolean disable)` | Disable/Enable local loopback of multicast datagrams The option is used by the platform's networking code as a hint for setting whether multicast data will be looped back to the local socket.
    `void` | MulticastSocket.`setNetworkInterface​(NetworkInterface netIf)` | Specify the network interface for outgoing multicast datagrams sent on this socket.
    `void` | Socket.`setOOBInline​(boolean on)` | Enable/disable `SO_OOBINLINE` (receipt of TCP urgent data) By default, this option is disabled and TCP urgent data received on a socket is silently discarded.
    `void` | SocketOptions.`setOption​(int optID, Object value)` | Enable/disable the option specified by optID.
    `void` | DatagramSocket.`setReceiveBufferSize​(int size)` | Sets the SO_RCVBUF option to the specified value for this `DatagramSocket`.
    `void` | ServerSocket.`setReceiveBufferSize​(int size)` | Sets a default proposed value for the `SO_RCVBUF` option for sockets accepted from this `ServerSocket`.
    `void` | Socket.`setReceiveBufferSize​(int size)` | Sets the `SO_RCVBUF` option to the specified value for this `Socket`.
    `void` | DatagramSocket.`setReuseAddress​(boolean on)` | Enable/disable the SO_REUSEADDR socket option.
    `void` | ServerSocket.`setReuseAddress​(boolean on)` | Enable/disable the `SO_REUSEADDR` socket option.
    `void` | Socket.`setReuseAddress​(boolean on)` | Enable/disable the `SO_REUSEADDR` socket option.
    `void` | DatagramSocket.`setSendBufferSize​(int size)` | Sets the SO_SNDBUF option to the specified value for this `DatagramSocket`.
    `void` | Socket.`setSendBufferSize​(int size)` | Sets the `SO_SNDBUF` option to the specified value for this `Socket`.
    `void` | Socket.`setSoLinger​(boolean on, int linger)` | Enable/disable `SO_LINGER` with the specified linger time in seconds.
    `void` | DatagramSocket.`setSoTimeout​(int timeout)` | Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.
    `void` | ServerSocket.`setSoTimeout​(int timeout)` | Enable/disable `SO_TIMEOUT` with the specified timeout, in milliseconds.
    `void` | Socket.`setSoTimeout​(int timeout)` | Enable/disable `SO_TIMEOUT` with the specified timeout, in milliseconds.
    `void` | Socket.`setTcpNoDelay​(boolean on)` | Enable/disable `TCP_NODELAY` (disable/enable Nagle's algorithm).
    `void` | DatagramSocket.`setTrafficClass​(int tc)` | Sets traffic class or type-of-service octet in the IP datagram header for datagrams sent from this DatagramSocket.
    `void` | Socket.`setTrafficClass​(int tc)` | Sets traffic class or type-of-service octet in the IP header for packets sent from this Socket.
    `boolean` | NetworkInterface.`supportsMulticast()` | Returns whether a network interface supports multicasting or not.

    Constructors in java.net that throw SocketException
    Constructor | Description
    --- | ---
    `DatagramSocket()` | Constructs a datagram socket and binds it to any available port on the local host machine.
    `DatagramSocket​(int port)` | Constructs a datagram socket and binds it to the specified port on the local host machine.
    `DatagramSocket​(int port, InetAddress laddr)` | Creates a datagram socket, bound to the specified local address.
    `DatagramSocket​(SocketAddress bindaddr)` | Creates a datagram socket, bound to the specified local socket address.
    `Socket​(SocketImpl impl)` | Creates an unconnected Socket with a user-specified SocketImpl.