| java.lang.Object java.io.InputStream java.io.FilterInputStream sun.net.TelnetInputStream
All known Subclasses: sun.net.ftp.FtpInputStream,
TelnetInputStream | public class TelnetInputStream extends FilterInputStream (Code) | | 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.
version: 1.22, 08/19/02 author: Jonathan Payne |
Field Summary | |
public boolean | binaryMode | boolean | seenCR | boolean | stickyCRLF If stickyCRLF is true, then we're a machine, like an IBM PC,
where a Newline is a CR followed by LF. |
Method Summary | |
public int | read() | public int | read(byte bytes) | public int | read(byte bytes, int off, int length) Read into a byte array at offset off for length length
bytes. | public void | setStickyCRLF(boolean on) |
binaryMode | public boolean binaryMode(Code) | | |
stickyCRLF | boolean stickyCRLF(Code) | | 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.
|
read | public int read(byte bytes, int off, int length) throws IOException(Code) | | Read into a byte array at offset off for length length
bytes.
|
setStickyCRLF | public void setStickyCRLF(boolean on)(Code) | | |
|
|