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
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
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.
|
|
Fields
public
boolean
binaryMode
Public Constructors
public
TelnetInputStream
(InputStream fd, boolean binary)
Public Methods
public
int
read
(byte[] bytes)
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.
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.
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.
public
void
setStickyCRLF
(boolean on)