## Uses of Class
java.net.Socket

- Packages that use Socket
  Package | Description
  --- | ---
  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.
  java.rmi.server | Provides classes and interfaces for supporting the server side of RMI.
  javax.net | Provides classes for networking applications.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.rmi.ssl | Provides implementations of `RMIClientSocketFactory` and `RMIServerSocketFactory` over the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols.
  jdk.net | Platform specific socket options for the `java.net` and `java.nio.channels` socket classes.

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

    Methods in java.net that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `Socket` | ServerSocket.`accept()` | Listens for a connection to be made to this socket and accepts it.
    `<T> Socket` | Socket.`setOption​(SocketOption<T> name, T value)` | Sets the value of a socket option.

    Methods in java.net with parameters of type Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | ServerSocket.`implAccept​(Socket s)` | Subclasses of ServerSocket use this method to override accept() to return their own subclass of socket.

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

    Methods in java.nio.channels that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Socket` | SocketChannel.`socket()` | Retrieves a socket associated with this channel.

  - ### Uses of Socket in java.rmi.server

    Methods in java.rmi.server that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `Socket` | RMIClientSocketFactory.`createSocket​(String host, int port)` | Create a client socket connected to the specified host and port.
    `abstract Socket` | RMISocketFactory.`createSocket​(String host, int port)` | Creates a client socket connected to the specified host and port.

  - ### Uses of Socket in javax.net

    Methods in javax.net that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `Socket` | SocketFactory.`createSocket()` | Creates an unconnected socket.
    `abstract Socket` | SocketFactory.`createSocket​(String host, int port)` | Creates a socket and connects it to the specified remote host at the specified remote port.
    `abstract Socket` | SocketFactory.`createSocket​(String host, int port, InetAddress localHost, int localPort)` | Creates a socket and connects it to the specified remote host on the specified remote port.
    `abstract Socket` | SocketFactory.`createSocket​(InetAddress host, int port)` | Creates a socket and connects it to the specified port number at the specified address.
    `abstract Socket` | SocketFactory.`createSocket​(InetAddress address, int port, InetAddress localAddress, int localPort)` | Creates a socket and connect it to the specified remote address on the specified remote port.

  - ### Uses of Socket in javax.net.ssl

    Subclasses of Socket in javax.net.ssl
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SSLSocket` | This class extends `Socket` and provides secure sockets using protocols such as the "Secure Sockets Layer" (SSL) or IETF "Transport Layer Security" (TLS) protocols.

    Methods in javax.net.ssl that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `Socket` | SSLSocketFactory.`createSocket​(Socket s, InputStream consumed, boolean autoClose)` | Creates a server mode `Socket` layered over an existing connected socket, and is able to read data which has already been consumed/removed from the `Socket`'s underlying `InputStream`.
    `abstract Socket` | SSLSocketFactory.`createSocket​(Socket s, String host, int port, boolean autoClose)` | Returns a socket layered over an existing socket connected to the named host, at the given port.

    Methods in javax.net.ssl with parameters of type Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | X509ExtendedTrustManager.`checkClientTrusted​(X509Certificate[] chain, String authType, Socket socket)` | Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
    `abstract void` | X509ExtendedTrustManager.`checkServerTrusted​(X509Certificate[] chain, String authType, Socket socket)` | Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
    `String` | X509KeyManager.`chooseClientAlias​(String[] keyType, Principal[] issuers, Socket socket)` | Choose an alias to authenticate the client side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String` | X509KeyManager.`chooseServerAlias​(String keyType, Principal[] issuers, Socket socket)` | Choose an alias to authenticate the server side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `Socket` | SSLSocketFactory.`createSocket​(Socket s, InputStream consumed, boolean autoClose)` | Creates a server mode `Socket` layered over an existing connected socket, and is able to read data which has already been consumed/removed from the `Socket`'s underlying `InputStream`.
    `abstract Socket` | SSLSocketFactory.`createSocket​(Socket s, String host, int port, boolean autoClose)` | Returns a socket layered over an existing socket connected to the named host, at the given port.

  - ### Uses of Socket in javax.rmi.ssl

    Methods in javax.rmi.ssl that return Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `Socket` | SslRMIClientSocketFactory.`createSocket​(String host, int port)` | Creates an SSL socket.

  - ### Uses of Socket in jdk.net

    Methods in jdk.net with parameters of type Socket
    Modifier and Type | Method | Description
    --- | --- | ---
    `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​(Socket s, SocketOption<T> name, T value)` | Sets the value of a socket option on a `Socket`