APIdia Launch Partner
Top Description Fields Constructors Methods
sun.net

public Class TelnetInputStream

extends FilterInputStream
Class Inheritance
Imports
java.io.*

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 <LF> 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.
Author
Jonathan Payne

Field Summary

Modifier and TypeField and Description
public boolean
pack-priv boolean
pack-priv boolean
stickyCRLF

If stickyCRLF is true, then we're a machine, like an IBM PC, where a Newline is a CR followed by LF.

Inherited from java.io.FilterInputStream:
in

Constructor Summary

AccessConstructor and Description
public
TelnetInputStream(InputStream fd, boolean binary)

Method Summary

Modifier and TypeMethod and Description
public int
read()

Overrides java.io.FilterInputStream.read.

Reads the next byte of data from the input stream.

public int
read(byte[] bytes)

Overrides java.io.FilterInputStream.read.

read into a byte array

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

Overrides java.io.FilterInputStream.read.

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

public void
setStickyCRLF(boolean on)

Inherited from java.io.FilterInputStream:
availableclosemarkmarkSupportedresetskip

Field Detail

binaryModeback to summary
public boolean binaryMode
seenCRback to summary
pack-priv boolean seenCR
stickyCRLFback to summary
pack-priv boolean stickyCRLF

If stickyCRLF is true, then we're a machine, like an IBM PC, where a Newline is a CR followed by LF. On UNIX, this is false because Newline is represented with just a LF character.

Constructor Detail

TelnetInputStreamback to summary
public TelnetInputStream(InputStream fd, boolean binary)

Method Detail

readback to summary
public int read() throws IOException

Overrides java.io.FilterInputStream.read.

Doc from java.io.FilterInputStream.read.

Reads the next byte of data from the 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.

Exceptions
IOException:
if an I/O error occurs.
readback to summary
public int read(byte[] bytes) throws IOException

Overrides java.io.FilterInputStream.read.

read into a byte array

Exceptions
IOException:

Doc from java.io.FilterInputStream.read.

if an I/O error occurs.

readback to summary
public int read(byte[] bytes, int off, int length) throws IOException

Overrides java.io.FilterInputStream.read.

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

Exceptions
IOException:

Doc from java.io.FilterInputStream.read.

if an I/O error occurs.

setStickyCRLFback to summary
public void setStickyCRLF(boolean on)