    001    /*
    002     * Licensed to the Apache Software Foundation (ASF) under one or more
    003     * contributor license agreements.  See the NOTICE file distributed with
    004     * this work for additional information regarding copyright ownership.
    005     * The ASF licenses this file to You under the Apache License, Version 2.0
    006     * (the "License"); you may not use this file except in compliance with
    007     * the License.  You may obtain a copy of the License at
    008     *
    009     *      http://www.apache.org/licenses/LICENSE-2.0
    010     *
    011     * Unless required by applicable law or agreed to in writing, software
    012     * distributed under the License is distributed on an "AS IS" BASIS,
    013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014     * See the License for the specific language governing permissions and
    015     * limitations under the License.
    016     */
    017
    018    package org.apache.commons.net.chargen;
    019
    020    import java.io.InputStream;
    021
    022    import org.apache.commons.net.SocketClient;
    023
    024    /***
    025     * The CharGenTCPClient class is a TCP implementation of a client for the
    026     * character generator protocol described in RFC 864.  It can also be
    027     * used for Systat (RFC 866), Quote of the Day (RFC 865), and netstat
    028     * (port 15).  All of these protocols involve connecting to the appropriate
    029     * port, and reading data from an input stream.  The chargen protocol
    030     * actually sends data until the receiving end closes the connection.  All
    031     * of the others send only a fixed amount of data and then close the
    032     * connection.
    033     * <p>
    034     * To use the CharGenTCPClient class, just establish a
    035     * connection with
    036     * {@link org.apache.commons.net.SocketClient#connect  connect }
    037     * and call {@link #getInputStream  getInputStream() } to access
    038     * the data.  Don't close the input stream when you're done with it.  Rather,
    039     * call {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
    040     * to clean up properly.
    041     * <p>
    042     * <p>
    043     * @author Daniel F. Savarese
    044     * @see CharGenUDPClient
    045     ***/
    046
    047    public final class CharGenTCPClient extends SocketClient
    048    {
    049        /*** The systat port value of 11 according to RFC 866. ***/
    050        public static final int SYSTAT_PORT = 11;
    051        /*** The netstat port value of 19. ***/
    052        public static final int NETSTAT_PORT = 15;
    053        /*** The quote of the day port value of 17 according to RFC 865. ***/
    054        public static final int QUOTE_OF_DAY_PORT = 17;
    055        /*** The character generator port value of 19 according to RFC 864. ***/
    056        public static final int CHARGEN_PORT = 19;
    057        /*** The default chargen port.  It is set to 19 according to RFC 864. ***/
    058        public static final int DEFAULT_PORT = 19;
    059
    060        /***
    061         * The default constructor for CharGenTCPClient.  It merely sets the
    062         * default port to <code> DEFAULT_PORT </code>.
    063         ***/
    064        public CharGenTCPClient ()
    065        {
    066            setDefaultPort(DEFAULT_PORT);
    067        }
    068
    069        /***
    070         * Returns an InputStream from which the server generated data can be
    071         * read.  You should NOT close the InputStream when you're finished
    072         * reading from it.  Rather, you should call
    073         * {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
    074         * to clean up properly.
    075         * <p>
    076         * @return An InputStream from which the server generated data can be read.
    077         ***/
    078        public InputStream getInputStream()
    079        {
    080            return _input_;
    081        }
    082    }
    083
    084
    085
    086