View Javadoc

    1   /*
    2    * Copyright 2001-2005 The Apache Software Foundation
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *     http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  package org.apache.commons.net;
    17
    18  import java.io.InputStream;
    19
    20  /****
    21   * The CharGenTCPClient class is a TCP implementation of a client for the
    22   * character generator protocol described in RFC 864.  It can also be
    23   * used for Systat (RFC 866), Quote of the Day (RFC 865), and netstat
    24   * (port 15).  All of these protocols involve connecting to the appropriate
    25   * port, and reading data from an input stream.  The chargen protocol
    26   * actually sends data until the receiving end closes the connection.  All
    27   * of the others send only a fixed amount of data and then close the
    28   * connection.
    29   * <p>
    30   * To use the CharGenTCPClient class, just establish a
    31   * connection with
    32   * {@link org.apache.commons.net.SocketClient#connect  connect }
    33   * and call {@link #getInputStream  getInputStream() } to access
    34   * the data.  Don't close the input stream when you're done with it.  Rather,
    35   * call {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
    36   * to clean up properly.
    37   * <p>
    38   * <p>
    39   * @author Daniel F. Savarese
    40   * @see CharGenUDPClient
    41   ***/
    42
    43  public final class CharGenTCPClient extends SocketClient
    44  {
    45      /**** The systat port value of 11 according to RFC 866. ***/
    46      public static final int SYSTAT_PORT = 11;
    47      /**** The netstat port value of 19. ***/
    48      public static final int NETSTAT_PORT = 15;
    49      /**** The quote of the day port value of 17 according to RFC 865. ***/
    50      public static final int QUOTE_OF_DAY_PORT = 17;
    51      /**** The character generator port value of 19 according to RFC 864. ***/
    52      public static final int CHARGEN_PORT = 19;
    53      /**** The default chargen port.  It is set to 19 according to RFC 864. ***/
    54      public static final int DEFAULT_PORT = 19;
    55
    56      /****
    57       * The default constructor for CharGenTCPClient.  It merely sets the
    58       * default port to <code> DEFAULT_PORT </code>.
    59       ***/
    60      public CharGenTCPClient ()
    61      {
    62          setDefaultPort(DEFAULT_PORT);
    63      }
    64
    65      /****
    66       * Returns an InputStream from which the server generated data can be
    67       * read.  You should NOT close the InputStream when you're finished
    68       * reading from it.  Rather, you should call
    69       * {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
    70       * to clean up properly.
    71       * <p>
    72       * @return An InputStream from which the server generated data can be read.
    73       ***/
    74      public InputStream getInputStream()
    75      {
    76          return _input_;
    77      }
    78  }
    79
    80
    81
    82