public class

TelnetOutputStream

extends BufferedOutputStream
java.lang.Object
   ↳ java.io.OutputStream
     ↳ java.io.FilterOutputStream
       ↳ java.io.BufferedOutputStream
         ↳ sun.net.TelnetOutputStream

Class Overview

This class provides input and output streams for telnet clients. This class overrides write 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.BufferedOutputStream
From class java.io.FilterOutputStream
Public Constructors
TelnetOutputStream(OutputStream fd, boolean binary)
Public Methods
void setStickyCRLF(boolean on)
set the stickyCRLF flag.
void write(byte[] bytes, int off, int length)
Write the bytes at offset off in buffer bytes for length bytes.
void write(int c)
Writes the int to the stream and does CR LF processing if necessary.
[Expand]
Inherited Methods
From class java.io.BufferedOutputStream
From class java.io.FilterOutputStream
From class java.io.OutputStream
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable

Fields

public boolean binaryMode

Public Constructors

public TelnetOutputStream (OutputStream fd, boolean binary)

Public Methods

public void setStickyCRLF (boolean on)

set the stickyCRLF flag. Tells wether the terminal considers CRLF as a single char.

Parameters
on the boolean to set the flag to.

public void write (byte[] bytes, int off, int length)

Write the bytes at offset off in buffer bytes for length bytes.

Parameters
bytes the data.
off the start offset in the data.
length the number of bytes to write.
Throws
IOException

public void write (int c)

Writes the int to the stream and does CR LF processing if necessary.

Parameters
c the byte to be written.
Throws
IOException