Package org.apache.commons.net.telnet
Class TelnetClient
- java.lang.Object
-
- org.apache.commons.net.SocketClient
-
- org.apache.commons.net.telnet.TelnetClient
-
- Direct Known Subclasses:
FTP
public class TelnetClient extends SocketClient
The TelnetClient class implements the simple network virtual terminal (NVT) for the Telnet protocol according to RFC 854. It does not implement any of the extra Telnet options because it is meant to be used within a Java program providing automated access to Telnet accessible resources.The class can be used by first connecting to a server using the SocketClient
connectmethod. Then an InputStream and OutputStream for sending and receiving data over the Telnet connection can be obtained by using thegetInputStream()andgetOutputStream()methods. When you finish using the streams, you must calldisconnectrather than simply closing the streams.- Author:
- Daniel F. Savarese, Bruno D'Avanzo
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanreaderThreadprotected static intTERMINAL_TYPETerminal type optionprotected static intTERMINAL_TYPE_ISIs (for subnegotiation)protected static intTERMINAL_TYPE_SENDSend (for subnegotiation)-
Fields inherited from class org.apache.commons.net.SocketClient
_defaultPort_, _input_, _isConnected_, _output_, _socket_, _socketFactory_, _timeout_, NETASCII_EOL
-
-
Constructor Summary
Constructors Constructor Description TelnetClient()Default TelnetClient constructor.TelnetClient(java.lang.String termtype)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_connectAction_()Handles special connection requirements.voidaddOptionHandler(TelnetOptionHandler opthand)Registers a new TelnetOptionHandler for this telnet client to use.voiddeleteOptionHandler(int optcode)Unregisters a TelnetOptionHandler.voiddisconnect()Disconnects the telnet session, closing the input and output streams as well as the socket.java.io.InputStreamgetInputStream()Returns the telnet connection input stream.booleangetLocalOptionState(int option)Returns the state of the option on the local side.java.io.OutputStreamgetOutputStream()Returns the telnet connection output stream.booleangetReaderThread()Gets the status of the reader thread.booleangetRemoteOptionState(int option)Returns the state of the option on the remote side.voidregisterNotifHandler(TelnetNotificationHandler notifhand)Registers a notification handler to which will be sent notifications of received telnet option negotiation commands.voidregisterSpyStream(java.io.OutputStream spystream)Registers an OutputStream for spying what's going on in the TelnetClient session.booleansendAYT(long timeout)Sends an Are You There sequence and waits for the result.voidsetReaderThread(boolean flag)Sets the status of the reader thread.voidstopSpyStream()Stops spying this TelnetClient.voidunregisterNotifHandler()Unregisters the current notification handler.-
Methods inherited from class org.apache.commons.net.SocketClient
connect, connect, connect, connect, connect, connect, getDefaultPort, getDefaultTimeout, getLocalAddress, getLocalPort, getRemoteAddress, getRemotePort, getSoLinger, getSoTimeout, getTcpNoDelay, isConnected, setDefaultPort, setDefaultTimeout, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote
-
-
-
-
Field Detail
-
readerThread
protected boolean readerThread
-
TERMINAL_TYPE
protected static final int TERMINAL_TYPE
Terminal type option- See Also:
- Constant Field Values
-
TERMINAL_TYPE_SEND
protected static final int TERMINAL_TYPE_SEND
Send (for subnegotiation)- See Also:
- Constant Field Values
-
TERMINAL_TYPE_IS
protected static final int TERMINAL_TYPE_IS
Is (for subnegotiation)- See Also:
- Constant Field Values
-
-
Method Detail
-
_connectAction_
protected void _connectAction_() throws java.io.IOExceptionHandles special connection requirements.- Throws:
java.io.IOException- If an error occurs during connection setup.
-
disconnect
public void disconnect() throws java.io.IOExceptionDisconnects the telnet session, closing the input and output streams as well as the socket. If you have references to the input and output streams of the telnet connection, you should not close them yourself, but rather call disconnect to properly close the connection.- Overrides:
disconnectin classSocketClient- Throws:
java.io.IOException- If there is an error closing the socket.
-
getOutputStream
public java.io.OutputStream getOutputStream()
Returns the telnet connection output stream. You should not close the stream when you finish with it. Rather, you should calldisconnect.- Returns:
- The telnet connection output stream.
-
getInputStream
public java.io.InputStream getInputStream()
Returns the telnet connection input stream. You should not close the stream when you finish with it. Rather, you should calldisconnect.- Returns:
- The telnet connection input stream.
-
getLocalOptionState
public boolean getLocalOptionState(int option)
Returns the state of the option on the local side.- Parameters:
option- - Option to be checked.- Returns:
- The state of the option on the local side.
-
getRemoteOptionState
public boolean getRemoteOptionState(int option)
Returns the state of the option on the remote side.- Parameters:
option- - Option to be checked.- Returns:
- The state of the option on the remote side.
-
sendAYT
public boolean sendAYT(long timeout) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.InterruptedExceptionSends an Are You There sequence and waits for the result.- Parameters:
timeout- - Time to wait for a response (millis.)- Returns:
- true if AYT received a response, false otherwise
- Throws:
java.lang.InterruptedExceptionjava.lang.IllegalArgumentExceptionjava.io.IOException-
-
addOptionHandler
public void addOptionHandler(TelnetOptionHandler opthand) throws InvalidTelnetOptionException
Registers a new TelnetOptionHandler for this telnet client to use.- Parameters:
opthand- - option handler to be registered.- Throws:
InvalidTelnetOptionException-
-
deleteOptionHandler
public void deleteOptionHandler(int optcode) throws InvalidTelnetOptionExceptionUnregisters a TelnetOptionHandler.- Parameters:
optcode- - Code of the option to be unregistered.- Throws:
InvalidTelnetOptionException-
-
registerSpyStream
public void registerSpyStream(java.io.OutputStream spystream)
Registers an OutputStream for spying what's going on in the TelnetClient session.- Parameters:
spystream- - OutputStream on which session activity will be echoed.
-
stopSpyStream
public void stopSpyStream()
Stops spying this TelnetClient.
-
registerNotifHandler
public void registerNotifHandler(TelnetNotificationHandler notifhand)
Registers a notification handler to which will be sent notifications of received telnet option negotiation commands.- Parameters:
notifhand- - TelnetNotificationHandler to be registered
-
unregisterNotifHandler
public void unregisterNotifHandler()
Unregisters the current notification handler.
-
setReaderThread
public void setReaderThread(boolean flag)
Sets the status of the reader thread. The reader thread status will apply to all subsequent connections- Parameters:
flag- - true switches the reader thread on, false switches it off
-
getReaderThread
public boolean getReaderThread()
Gets the status of the reader thread.- Returns:
- true if the reader thread is on, false otherwise
-
-