|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--ipworks.Telnet
The Telnet control is used to communicate with servers implementing the TELNET protocol.
The Telnet control provides a simple interface to Telnet communications as specified by RFC 854. It allows sending of Telnet command codes to remote Telnet servers and it scans the input data for Telnet commands. Appropriate events are fired for received commands.
The connection interface is very similar to that of IPPort. The same properties
and events are used for sending and receiving normal data, and the
same property set is used for setting properties of the connection.
The Telnet control adds a number of properties like Command
, DoOption
, etc. which allow sending of Telnet commands to the other end.
The respective events ( Command
, Do
, etc.) are fired when the
corresponding Telnet commands are received.
Field Summary | |
static int |
fwNone
|
static int |
fwSOCKS4
|
static int |
fwSOCKS5
|
static int |
fwTunnel
|
Constructor Summary | |
Telnet()
|
Method Summary | |
void |
addTelnetEventListener(TelnetEventListener l)
|
void |
connect(java.lang.String host)
Connect to a remote host. |
void |
disconnect()
Disconnect from the remote host. |
void |
fireCommand(int commandCode)
Fired when a Telnet command comes from the Telnet server. |
void |
fireConnected(int statusCode,
java.lang.String description)
Fired immediately after a connection completes (or fails). |
void |
fireDataIn(byte[] text)
Fired when characters are received from the remote host. |
void |
fireDisconnected(int statusCode,
java.lang.String description)
Fired when a connection is closed. |
void |
fireDoDo(int optionCode)
Fired when a Telnet DO OPTION command comes from the Telnet server. |
void |
fireDont(int optionCode)
Fired when a Telnet DONT OPTION command comes from the Telnet server. |
void |
fireError(int errorCode,
java.lang.String description)
Information about errors during data delivery. |
void |
fireReadyToSend()
Fired when the component is ready to send data. |
void |
fireSubOption(byte[] subOption)
Fired when a Telnet suboption command comes from the Telnet server. |
void |
fireWill(int optionCode)
Fired when a Telnet WILL OPTION command comes from the Telnet server. |
void |
fireWont(int optionCode)
Fired when a Telnet WONT OPTION command comes from the Telnet server. |
int |
getBytesSent()
The number of bytes actually sent after an assignment to DataToSend . |
byte[] |
getFirewallData()
Used to send other data to firewall. |
java.lang.String |
getFirewallHost()
Name or IP address of firewall (optional). |
java.lang.String |
getFirewallPassword()
A password if authentication is to be used connecting through the firewall. |
int |
getFirewallPort()
Port of the firewall to connect to. |
int |
getFirewallType()
Determines the type of firewall to connect through. |
java.lang.String |
getFirewallUser()
A user name if authentication is to be used connecting through a firewall. |
java.lang.String |
getLocalHost()
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
int |
getLocalPort()
The TCP port in the local host where IPPort binds. |
java.lang.String |
getRemoteHost()
The address of the remote host. |
int |
getRemotePort()
The Telnet port in the remote host (default is 23). |
int |
getTimeout()
A timeout for the component. |
boolean |
isAcceptData()
Enables or disables data reception (the DataIn event). |
boolean |
isConnected()
Triggers a connection or disconnection. |
boolean |
isKeepAlive()
When True, KEEPALIVE packets are enabled (for long connections). |
boolean |
isLinger()
When set to True, connections are terminated gracefully. |
boolean |
isTransparent()
When True, Telnet command processing is disabled. |
void |
removeTelnetEventListener(TelnetEventListener l)
|
void |
send(byte[] text)
Send data to the remote host. |
void |
setAcceptData(boolean acceptData)
Enables or disables data reception (the DataIn event). |
void |
setCommand(int command)
A single character Telnet command code to be sent to the server. |
void |
setConnected(boolean connected)
Triggers a connection or disconnection. |
void |
setDataToSend(byte[] dataToSend)
A string of data to be sent to the remote host. |
void |
setDontOption(int dontOption)
A single character Telnet option code to be sent to the server with the Telnet DONT command. |
void |
setDoOption(int doOption)
A single character Telnet option code to be sent to the server with the Telnet DO command. |
void |
setDoSubOption(byte[] doSubOption)
A Telnet suboption to send to the server with the suboption command. |
void |
setFirewallData(byte[] firewallData)
Used to send other data to firewall. |
void |
setFirewallHost(java.lang.String firewallHost)
Name or IP address of firewall (optional). |
void |
setFirewallPassword(java.lang.String firewallPassword)
A password if authentication is to be used connecting through the firewall. |
void |
setFirewallPort(int firewallPort)
Port of the firewall to connect to. |
void |
setFirewallType(int firewallType)
Determines the type of firewall to connect through. |
void |
setFirewallUser(java.lang.String firewallUser)
A user name if authentication is to be used connecting through a firewall. |
void |
setKeepAlive(boolean keepAlive)
When True, KEEPALIVE packets are enabled (for long connections). |
void |
setLinger(boolean linger)
When set to True, connections are terminated gracefully. |
void |
setLocalHost(java.lang.String localHost)
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
void |
setLocalPort(int localPort)
The TCP port in the local host where IPPort binds. |
void |
setRemoteHost(java.lang.String remoteHost)
The address of the remote host. |
void |
setRemotePort(int remotePort)
The Telnet port in the remote host (default is 23). |
void |
setTimeout(int timeout)
A timeout for the component. |
void |
setTransparent(boolean transparent)
When True, Telnet command processing is disabled. |
void |
setUrgentData(byte[] urgentData)
A string of data to be sent urgently (out-of-band) to the remote host. |
void |
setWillOption(int willOption)
A single character Telnet option code to be sent to the server with the Telnet WILL command. |
void |
setWontOption(int wontOption)
A single character Telnet option code to be sent to the server with the Telnet WONT command. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int fwNone
public static final int fwTunnel
public static final int fwSOCKS4
public static final int fwSOCKS5
Constructor Detail |
public Telnet()
Method Detail |
public boolean isAcceptData()
DataIn
event). Setting the property to True, reenables
data reception.
public void setAcceptData(boolean acceptData) throws IPWorksException
DataIn
event). Setting the property to True, reenables
data reception.
public int getBytesSent()
BytesSent
property shows how many bytes were sent after the last
assignment to DataToSend
or UrgentData
. Please check the DataToSend
property for more information.
public void setCommand(int command) throws IPWorksException
public boolean isConnected()
Connected
property to True makes the control attempt
to connect to the host identified by the RemoteHost
property.
If successful, after the connection is achieved, the value of the
property changes to True and the Connected
event is fired.
Setting Connected to False closes the connection. How and when the
connection is closed is controlled by the Linger
property.
public void setConnected(boolean connected) throws IPWorksException
Connected
property to True makes the control attempt
to connect to the host identified by the RemoteHost
property.
If successful, after the connection is achieved, the value of the
property changes to True and the Connected
event is fired.
Setting Connected to False closes the connection. How and when the
connection is closed is controlled by the Linger
property.
public void setDataToSend(byte[] dataToSend) throws IPWorksException
DataToSend
property is an action property. Assigning
a string to this property makes the control send
the string to the remote host
.
If you are sending data to the remote host faster than it can
process it, or faster than the network's bandwidth allows, the outgoing
queue might fill up. When this happens, DataToSend
If 0 bytes were sent, then you
can wait for the ReadyToSend
event before attempting to send data
again. (However, please note that ReadyToSend
is not fired when part
of the data is successfully sent).
public void setDontOption(int dontOption) throws IPWorksException
public void setDoOption(int doOption) throws IPWorksException
public void setDoSubOption(byte[] doSubOption) throws IPWorksException
You don't need to specify the suboption start and suboption end codes. Those are appended automatically by the control. For example, to send a terminal type suboption to request setting the terminal type to 'vt100', you must send ASCII 24, followed by ASCII 0, followed by "vt100" (without the quotes).
public byte[] getFirewallData()
public void setFirewallData(byte[] firewallData) throws IPWorksException
public java.lang.String getFirewallHost()
FirewallHost
is given, requested connections will be
authenticated through the specified firewall when connecting.
If the FirewallHost
property is set to a Domain Name, a DNS request
is initiated and upon successful termination of the request, the FirewallHost
property is set to the corresponding address. If the
search is not successful, an error is returned.
public void setFirewallHost(java.lang.String firewallHost) throws IPWorksException
FirewallHost
is given, requested connections will be
authenticated through the specified firewall when connecting.
If the FirewallHost
property is set to a Domain Name, a DNS request
is initiated and upon successful termination of the request, the FirewallHost
property is set to the corresponding address. If the
search is not successful, an error is returned.
public java.lang.String getFirewallPassword()
FirewallHost
is specified, the FirewallUser
and FirewallPassword
properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public void setFirewallPassword(java.lang.String firewallPassword) throws IPWorksException
FirewallHost
is specified, the FirewallUser
and FirewallPassword
properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public int getFirewallPort()
FirewallHost
. See the
description of the FirewallHost
property for
details.
Note that the FirewallPort
is set automatically
when FirewallType
is set to a valid value. See the
description of the FirewallType
property for
details.
public void setFirewallPort(int firewallPort) throws IPWorksException
FirewallHost
. See the
description of the FirewallHost
property for
details.
Note that the FirewallPort
is set automatically
when FirewallType
is set to a valid value. See the
description of the FirewallType
property for
details.
public int getFirewallType()
FirewallPort
is set to 80.
FirewallPort
is set to 1080.
FirewallPort
is set to 1080.
public void setFirewallType(int firewallType) throws IPWorksException
FirewallPort
is set to 80.
FirewallPort
is set to 1080.
FirewallPort
is set to 1080.
public java.lang.String getFirewallUser()
FirewallHost
is specified, the FirewallUser
and FirewallPassword
properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public void setFirewallUser(java.lang.String firewallUser) throws IPWorksException
FirewallHost
is specified, the FirewallUser
and FirewallPassword
properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public boolean isKeepAlive()
KeepAlive
enables the SO_KEEPALIVE option on the socket.
This option prevents long connections from timing out in case
of inactivity.
Please note that Winsock implementations are not required to support SO_KEEPALIVE.
public void setKeepAlive(boolean keepAlive) throws IPWorksException
KeepAlive
enables the SO_KEEPALIVE option on the socket.
This option prevents long connections from timing out in case
of inactivity.
Please note that Winsock implementations are not required to support SO_KEEPALIVE.
public boolean isLinger()
Linger
property controls how a connection is closed. The default is True.
In this case the connection is closed only after all the data is sent.
Setting it to False forces an abrupt (hard) disconnection. Any
data that were in the sending queue may be lost.
The default behavior (which is also the default mode for Winsock stream sockets) might result in an indefinite delay in closing the connection. Although the control returns control immediately, Winsock might indefinitely hold system resources until all pending data are sent (even after your application closes). This means that valuable system resources might be wasted.
Setting Linger
to False forces an immediate disconnection. If you
know that the other side has received all the data you had sent (by
a client acknowledgment, for example), setting Linger
to False might
be the appropriate course of action.
public void setLinger(boolean linger) throws IPWorksException
Linger
property controls how a connection is closed. The default is True.
In this case the connection is closed only after all the data is sent.
Setting it to False forces an abrupt (hard) disconnection. Any
data that were in the sending queue may be lost.
The default behavior (which is also the default mode for Winsock stream sockets) might result in an indefinite delay in closing the connection. Although the control returns control immediately, Winsock might indefinitely hold system resources until all pending data are sent (even after your application closes). This means that valuable system resources might be wasted.
Setting Linger
to False forces an immediate disconnection. If you
know that the other side has received all the data you had sent (by
a client acknowledgment, for example), setting Linger
to False might
be the appropriate course of action.
public java.lang.String getLocalHost()
LocalHost
property contains the name of the local host
as obtained by the gethostname() Winsock call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the control initiate connections (or accept in the case of server controls) only through that interface.
If the control is connected, the LocalHost
property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multihomed
hosts (machines with more than one IP interface).
NOTE: LocalHost
is not persistent. You must always set it in
code, and never in the property window.
public void setLocalHost(java.lang.String localHost) throws IPWorksException
LocalHost
property contains the name of the local host
as obtained by the gethostname() Winsock call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the control initiate connections (or accept in the case of server controls) only through that interface.
If the control is connected, the LocalHost
property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multihomed
hosts (machines with more than one IP interface).
NOTE: LocalHost
is not persistent. You must always set it in
code, and never in the property window.
public int getLocalPort()
LocalPort
property must be set before a connection is
attempted. It instructs the control to bind to a specific
port (or communication endpoint) in the local machine.
Setting it to 0 (default) enables Winsock to choose a port
at random. The chosen port will be shown by the LocalPort
property after the connection is established.
LocalPort
cannot be changed once a connection is made.
Any attempt to set the LocalPort
property when a connection
is active will generate an error.
The LocalPort
property is useful when trying to connect
to services that require a trusted port in the client side.
public void setLocalPort(int localPort) throws IPWorksException
LocalPort
property must be set before a connection is
attempted. It instructs the control to bind to a specific
port (or communication endpoint) in the local machine.
Setting it to 0 (default) enables Winsock to choose a port
at random. The chosen port will be shown by the LocalPort
property after the connection is established.
LocalPort
cannot be changed once a connection is made.
Any attempt to set the LocalPort
property when a connection
is active will generate an error.
The LocalPort
property is useful when trying to connect
to services that require a trusted port in the client side.
public java.lang.String getRemoteHost()
RemoteHost
property specifies the IP address (IP number in
dotted internet format) or Domain Name of the remote host.
It is set before a connection is attempted and cannot be changed
once a connection is established.
If the RemoteHost
property is set to a Domain Name, a DNS request
is initiated, and upon successful termination of the request, the RemoteHost
property is set to the corresponding address. If the
search is not successful, an error is returned.
public void setRemoteHost(java.lang.String remoteHost) throws IPWorksException
RemoteHost
property specifies the IP address (IP number in
dotted internet format) or Domain Name of the remote host.
It is set before a connection is attempted and cannot be changed
once a connection is established.
If the RemoteHost
property is set to a Domain Name, a DNS request
is initiated, and upon successful termination of the request, the RemoteHost
property is set to the corresponding address. If the
search is not successful, an error is returned.
public int getRemotePort()
RemotePort
while
connected will fail with an error.
public void setRemotePort(int remotePort) throws IPWorksException
RemotePort
while
connected will fail with an error.
public int getTimeout()
Timeout
property is set to 0 (default value), all
operations return immediately, potentially failing with an 'WOULDBLOCK' error if they can't be completed..
If Timeout
is set to a positive value, the control will
automatically retry each operation that would otherwise result in a 'WOULDBLOCK' error for a maximum of Timeout
seconds.
The control will use DoEvents
to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If the Timeout
expires, and the operation is not yet complete, a Timeout
error is fired.
public void setTimeout(int timeout) throws IPWorksException
Timeout
property is set to 0 (default value), all
operations return immediately, potentially failing with an 'WOULDBLOCK' error if they can't be completed..
If Timeout
is set to a positive value, the control will
automatically retry each operation that would otherwise result in a 'WOULDBLOCK' error for a maximum of Timeout
seconds.
The control will use DoEvents
to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If the Timeout
expires, and the operation is not yet complete, a Timeout
error is fired.
public boolean isTransparent()
Transparent
property allows you to enable or disable Telnet command
processing. When command processing is disabled, any data received
are provided with no modifications.
public void setTransparent(boolean transparent) throws IPWorksException
Transparent
property allows you to enable or disable Telnet command
processing. When command processing is disabled, any data received
are provided with no modifications.
public void setUrgentData(byte[] urgentData) throws IPWorksException
UrgentData
property behaves exactly like the DataToSend
property
except that the data are sent Out Of Band (urgent). This means that
the data assigned to UrgentData
will bypass the normal TCP queuing
mechanism. Use this property with caution.
public void setWillOption(int willOption) throws IPWorksException
public void setWontOption(int wontOption) throws IPWorksException
public void fireCommand(int commandCode)
TelnetCommandEvent
public void fireConnected(int statusCode, java.lang.String description)
TelnetConnectedEvent
public void fireDataIn(byte[] text)
TelnetDataInEvent
public void fireDisconnected(int statusCode, java.lang.String description)
TelnetDisconnectedEvent
public void fireDoDo(int optionCode)
TelnetDoDoEvent
public void fireDont(int optionCode)
TelnetDontEvent
public void fireError(int errorCode, java.lang.String description)
TelnetErrorEvent
public void fireReadyToSend()
TelnetReadyToSendEvent
public void fireSubOption(byte[] subOption)
TelnetSubOptionEvent
public void fireWill(int optionCode)
TelnetWillEvent
public void fireWont(int optionCode)
TelnetWontEvent
public void connect(java.lang.String host) throws IPWorksException
RemoteHost
property
to Host and then setting the Connected
property to True.
public void disconnect() throws IPWorksException
Connected
property
to False.
public void send(byte[] text) throws IPWorksException
DataToSend
property
to Text .
public void addTelnetEventListener(TelnetEventListener l) throws java.util.TooManyListenersException
public void removeTelnetEventListener(TelnetEventListener l)
|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |