Qore TelnetClient Module Reference
1.0
|
The TelnetClient class allows communication with a telnet server; it can be used directly or subclassed with overridden methods to customize its behavior. More...
Public Member Functions | |
connect (timeout timeout=DefaultConnTimeout) | |
connects to the Telnet server More... | |
constructor (string host, softint port, *code log, *code dbgLog) | |
creates the TelnetClient object More... | |
constructor (string connect, *code log, *code dbglog) | |
creates the TelnetClient object More... | |
destructor () | |
disconnects from the server if connected and deletes the object | |
disconnect () | |
disconnects from the Telnet server More... | |
*string | getAvailableData (timeout t=DefaultTimeout) |
returns all data available as a string (which could be an empty string if no data is available in the timeout period) or NOTHING if the connection was closed by the remote end More... | |
*string | getUser () |
returns the current value of the username parameter | |
bool | hasFeature (int fc) |
returns True if the server has confirmed with a DO command that it supports the given feature More... | |
bool | isConnected () |
returns True if the client is connected to the server | |
sendData (softlist arr) | |
sends data to the server More... | |
sendTextData (string str) | |
sends literal string data to the server; the text dat is converted to the socket's encoding if necessary More... | |
setUser (*string user) | |
sets or clears (in case passed with no value) the username parameter for logging in to the telnet server More... | |
windowSizeUpdated () | |
this method should be called externally when the window size has changed More... | |
Private Member Functions | |
*string | getDisplay () |
this method provides the value that will be given as the DISPLAY value in protocol negotiation More... | |
hash | getEnvironment () |
this method provides the value that will be given as the user's environment in protocol negotiation More... | |
int | getTerminalSpeed () |
this method provides the value that will be given as the terminal speed in protocol negotiation More... | |
*string | getTerminalType () |
this method provides the value that will be given as the terminal type in protocol negotiation More... | |
hash | getWindowSize () |
this method provides the value that will be given as the terminal window size in protocol negotiation More... | |
log (string msg) | |
logs the message to the log closure set with the constructor (if any) | |
logDbg (string msg) | |
logs the message to the debug log closure set with the constructor (if any) | |
The TelnetClient class allows communication with a telnet server; it can be used directly or subclassed with overridden methods to customize its behavior.
This class uses a Mutex lock in each TelnetClient object to ensure thread serialization to the underlying socket and its internal configuration, so it is safe to access in a multithreaded context.
TelnetClient::TelnetClient::connect | ( | timeout | timeout = DefaultConnTimeout | ) |
connects to the Telnet server
If the object is already connected, it is disconnected and a new connection attempt is made.
TelnetClient::TelnetClient::constructor | ( | string | host, |
softint | port, | ||
*code | log, | ||
*code | dbgLog | ||
) |
creates the TelnetClient object
host | the hostname of the telnet server (use [hostname] to explicitly specify an ipv6 connection) |
port | the port number of the telnet server |
log | a closure or call reference for log messages; a single string argument will be passed to this code for logging |
dbgLog | a closure for debugging/technical log messages; a single string argument will be passed to this code for logging |
TelnetClient::TelnetClient::constructor | ( | string | connect, |
*code | log, | ||
*code | dbglog | ||
) |
creates the TelnetClient object
connect | the hostname of the Telnet server or a hostname:port specification (use [hostname] or [address] for ipv6 connections) |
log | a closure or call reference for log messages; a single string argument will be passed to this code for logging |
dbglog | a closure for debugging/technical log messages; a single string argument will be passed to this code for logging |
TelnetClient::TelnetClient::disconnect | ( | ) |
disconnects from the Telnet server
*string TelnetClient::TelnetClient::getAvailableData | ( | timeout | t = DefaultTimeout | ) |
returns all data available as a string (which could be an empty string if no data is available in the timeout period) or NOTHING if the connection was closed by the remote end
NOTHING is only returned if the remote end closed the connection
|
private |
this method provides the value that will be given as the DISPLAY value in protocol negotiation
override this method in a subclass to provide a different value
|
private |
this method provides the value that will be given as the user's environment in protocol negotiation
override this method in a subclass to provide a different value
|
private |
this method provides the value that will be given as the terminal speed in protocol negotiation
override this method in a subclass to provide a different value
|
private |
this method provides the value that will be given as the terminal type in protocol negotiation
override this method in a subclass to provide a different value
|
private |
this method provides the value that will be given as the terminal window size in protocol negotiation
The default implementation of this method is to return the actual terminal size by calling TermIOS::getWindowSize(). Override this method in a subclass to provide a different value.
rows:
the number of rows in the displaycolumns:
the number of columns in the display bool TelnetClient::TelnetClient::hasFeature | ( | int | fc | ) |
returns True if the server has confirmed with a DO command that it supports the given feature
fc | The feature code to check; see Telnet Command Option Codes for possible values; supported features are: |
TelnetClient::TelnetClient::sendData | ( | softlist | arr | ) |
sends data to the server
arr | a single element or a list of elements to send to the server; elements can be as follows:
|
SEND-ERROR | this exception is thrown if an invalid data type is passed to this method |
NOT-CONNECTED-EXCEPTION | if the socket is not already connected then this exception is thrown |
TelnetClient::TelnetClient::sendTextData | ( | string | str | ) |
sends literal string data to the server; the text dat is converted to the socket's encoding if necessary
str | currently sent verbatim to the server; no encoding conversions are performed on this string (possibly these should be scanned for IAC characters which should be duplicated) |
NOT-CONNECTED-EXCEPTION | if the socket is not already connected then this exception is thrown |
TelnetClient::TelnetClient::setUser | ( | *string | user | ) |
sets or clears (in case passed with no value) the username parameter for logging in to the telnet server
TelnetClient::TelnetClient::windowSizeUpdated | ( | ) |
this method should be called externally when the window size has changed