public class

TelnetInputStream

extends FilterInputStream
java.lang.Object
   ↳ java.io.InputStream
     ↳ java.io.FilterInputStream
       ↳ sun.net.TelnetInputStream

Class Overview

This class provides input and output streams for telnet clients. This class overrides read to do CRLF processing as specified in RFC 854. The class assumes it is running on a system where lines are terminated with a single newline character. This is the relevant section of RFC 824 regarding CRLF processing:

 The sequence "CR LF", as defined, will cause the NVT to be
 positioned at the left margin of the next print line (as would,
 for example, the sequence "LF CR").  However, many systems and
 terminals do not treat CR and LF independently, and will have to
 go to some effort to simulate their effect.  (For example, some
 terminals do not have a CR independent of the LF, but on such
 terminals it may be possible to simulate a CR by backspacing.)
 Therefore, the sequence "CR LF" must be treated as a single "new
 line" character and used whenever their combined action is
 intended; the sequence "CR NUL" must be used where a carriage
 return alone is actually desired; and the CR character must be
 avoided in other contexts.  This rule gives assurance to systems
 which must decide whether to perform a "new line" function or a
 multiple-backspace that the TELNET stream contains a character
 following a CR that will allow a rational decision.

    Note that "CR LF" or "CR NUL" is required in both directions
    (in the default ASCII mode), to preserve the symmetry of the
    NVT model.  Even though it may be known in some situations
    (e.g., with remote echo and suppress go ahead options in
    effect) that characters are not being sent to an actual
    printer, nonetheless, for the sake of consistency, the protocol
    requires that a NUL be inserted following a CR not followed by
    a LF in the data stream.  The converse of this is that a NUL
    received in the data stream after a CR (in the absence of
    options negotiations which explicitly specify otherwise) should
    be stripped out prior to applying the NVT to local character
    set mapping.
 

Summary

Fields
public boolean binaryMode
[Expand]
Inherited Fields
From class java.io.FilterInputStream
Public Constructors
TelnetInputStream(InputStream fd, boolean binary)
Public Methods
int read(byte[] bytes)
read into a byte array
int read()
Reads the next byte of data from this input stream.
int read(byte[] bytes, int off, int length)
Read into a byte array at offset off for length length bytes.
void setStickyCRLF(boolean on)
[Expand]
Inherited Methods
From class java.io.FilterInputStream
From class java.io.InputStream
From class java.lang.Object
From interface java.io.Closeable

Fields

public boolean binaryMode

Public Constructors

public TelnetInputStream (InputStream fd, boolean binary)

Public Methods

public int read (byte[] bytes)

read into a byte array

Parameters
bytes the buffer into which the data is read.
Returns
  • the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
Throws
IOException

public int read ()

Reads the next byte of data from this input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

This method simply performs in.read() and returns the result.

Returns
  • the next byte of data, or -1 if the end of the stream is reached.
Throws
IOException

public int read (byte[] bytes, int off, int length)

Read into a byte array at offset off for length length bytes.

Parameters
bytes the buffer into which the data is read.
off the start offset in the destination array b
length the maximum number of bytes read.
Returns
  • the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
Throws
IOException

public void setStickyCRLF (boolean on)