org.apache.commons.net.finger

## Class FingerClient

- java.lang.Object
- - org.apache.commons.net.SocketClient
  - - org.apache.commons.net.finger.FingerClient

- Direct Known Subclasses:
    WhoisClient

      public class FingerClient
      extends SocketClient

  The FingerClient class implements the client side of the Internet Finger Protocol defined in RFC 1288. To finger a host you create a FingerClient instance, connect to the host, query the host, and finally disconnect from the host. If the finger service you want to query is on a non-standard port, connect to the host at that port. Here's a sample use:

       FingerClient finger;
       finger = new FingerClient();
       try {
           finger.connect("foo.bar.com");
           System.out.println(finger.query("foobar", false));
           finger.disconnect();
       } catch (IOException e) {
           System.err.println("Error I/O exception: " + e.getMessage());
           return;
       }

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_PORT` The default FINGER port.

    - ### Fields inherited from class org.apache.commons.net.SocketClient

      `_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL, remoteInetSocketAddress`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FingerClient()` The default FingerClient constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `InputStream` | `getInputStream(boolean longOutput)` Fingers the connected host and returns the input stream from the network connection of the finger query.
    `InputStream` | `getInputStream(boolean longOutput, String user)` Fingers a user and returns the input stream from the network connection of the finger query.
    `InputStream` | `getInputStream(boolean longOutput, String user, String encoding)` Fingers a user and returns the input stream from the network connection of the finger query.
    `String` | `query(boolean longOutput)` Fingers the connected host and returns the output as a String.
    `String` | `query(boolean longOutput, String user)` Fingers a user at the connected host and returns the output as a String.

    - ### Methods inherited from class org.apache.commons.net.SocketClient

      `_connectAction_, addProtocolCommandListener, applySocketAttributes, checkOpenOutputStream, connect, connect, connect, connect, connect, connect, createCommandSupport, disconnect, fireCommandSent, fireReplyReceived, getCharset, getCommandSupport, getConnectTimeout, getDefaultPort, getDefaultTimeout, getHostAddress, getHostAddress, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemoteInetSocketAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### DEFAULT_PORT

          public static final int DEFAULT_PORT

      The default FINGER port. Set to 79 according to RFC 1288.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### FingerClient

          public FingerClient()

      The default FingerClient constructor. Initializes the default port to `DEFAULT_PORT`.

  - ### Method Detail

    - #### getInputStream

          public InputStream getInputStream(boolean longOutput)
                                     throws IOException

      Fingers the connected host and returns the input stream from the network connection of the finger query. This is equivalent to calling getInputStream(longOutput, ""). You must first connect to a finger server before calling this method, and you should disconnect after finishing reading the stream.
      Parameters:
        `longOutput` - Set to true if long output is requested, false if not.
      Returns:
        The InputStream of the network connection of the finger query. Can be read to obtain finger results.
      Throws:
        `IOException` - If an I/O error during the operation.

    - #### getInputStream

          public InputStream getInputStream(boolean longOutput,
                                            String user)
                                     throws IOException

      Fingers a user and returns the input stream from the network connection of the finger query. You must first connect to a finger server before calling this method, and you should disconnect after finishing reading the stream.
      Parameters:
        `longOutput` - Set to true if long output is requested, false if not.
        `user` - The name of the user to finger.
      Returns:
        The InputStream of the network connection of the finger query. Can be read to obtain finger results.
      Throws:
        `IOException` - If an I/O error during the operation.

    - #### getInputStream

          public InputStream getInputStream(boolean longOutput,
                                            String user,
                                            String encoding)
                                     throws IOException

      Fingers a user and returns the input stream from the network connection of the finger query. You must first connect to a finger server before calling this method, and you should disconnect after finishing reading the stream.
      Parameters:
        `longOutput` - Set to true if long output is requested, false if not.
        `user` - The name of the user to finger.
        `encoding` - the character encoding that should be used for the query, null for the platform's default encoding
      Returns:
        The InputStream of the network connection of the finger query. Can be read to obtain finger results.
      Throws:
        `IOException` - If an I/O error during the operation.

    - #### query

          public String query(boolean longOutput)
                       throws IOException

      Fingers the connected host and returns the output as a String. You must first connect to a finger server before calling this method, and you should disconnect afterward. This is equivalent to calling `query(longOutput, "")`.
      Parameters:
        `longOutput` - Set to true if long output is requested, false if not.
      Returns:
        The result of the finger query.
      Throws:
        `IOException` - If an I/O error occurs while reading the socket.

    - #### query

          public String query(boolean longOutput,
                              String user)
                       throws IOException

      Fingers a user at the connected host and returns the output as a String. You must first connect to a finger server before calling this method, and you should disconnect afterward.
      Parameters:
        `longOutput` - Set to true if long output is requested, false if not.
        `user` - The name of the user to finger.
      Returns:
        The result of the finger query.
      Throws:
        `IOException` - If an I/O error occurs while reading the socket.