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
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
synchronized
void
|
flush()
Flushes this buffered output stream.
|
synchronized
void
|
write(byte[] b, int off, int len)
Writes len bytes from the specified byte array
starting at offset off to this buffered output stream.
|
synchronized
void
|
write(int b)
Writes the specified byte to this buffered output stream.
|
|
From class
java.io.FilterOutputStream
void
|
close()
Closes this output stream and releases any system resources
associated with the stream.
|
void
|
flush()
Flushes this output stream and forces any buffered output bytes
to be written out to the stream.
|
void
|
write(byte[] b, int off, int len)
Writes len bytes from the specified
byte array starting at offset off to
this output stream.
|
void
|
write(byte[] b)
Writes b.length bytes to this output stream.
|
void
|
write(int b)
Writes the specified byte to this output stream.
|
|
From class
java.io.OutputStream
void
|
close()
Closes this output stream and releases any system resources
associated with this stream.
|
void
|
flush()
Flushes this output stream and forces any buffered output bytes
to be written out.
|
void
|
write(byte[] b, int off, int len)
Writes len bytes from the specified byte array
starting at offset off to this output stream.
|
void
|
write(byte[] b)
Writes b.length bytes from the specified byte array
to this output stream.
|
abstract
void
|
write(int b)
Writes the specified byte to this output stream.
|
|
From class
java.lang.Object
Object
|
clone()
Creates and returns a copy of this object.
|
boolean
|
equals(Object obj)
Indicates whether some other object is "equal to" this one.
|
void
|
finalize()
Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.
|
final
Class<?>
|
getClass()
Returns the runtime class of this Object .
|
int
|
hashCode()
Returns a hash code value for the object.
|
final
void
|
notify()
Wakes up a single thread that is waiting on this object's
monitor.
|
final
void
|
notifyAll()
Wakes up all threads that are waiting on this object's monitor.
|
String
|
toString()
Returns a string representation of the object.
|
final
void
|
wait()
Causes the current thread to wait until another thread invokes the
notify() method or the
notifyAll() method for this object.
|
final
void
|
wait(long timeout, int nanos)
Causes the current thread to wait until another thread invokes the
notify() method or the
notifyAll() method for this object, or
some other thread interrupts the current thread, or a certain
amount of real time has elapsed.
|
final
void
|
wait(long timeout)
Causes the current thread to wait until either another thread invokes the
notify() method or the
notifyAll() method for this object, or a
specified amount of time has elapsed.
|
|
From interface
java.io.Closeable
abstract
void
|
close()
Closes this stream and releases any system resources associated
with it.
|
|
From interface
java.io.Flushable
abstract
void
|
flush()
Flushes this stream by writing any buffered output to the underlying
stream.
|
|
Fields
public
boolean
binaryMode
Public Constructors
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. |
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. |