Class Telnet

    • Field Detail

      • COMMAND_DO

        static final byte[] COMMAND_DO
      • COMMAND_DONT

        static final byte[] COMMAND_DONT
      • COMMAND_WILL

        static final byte[] COMMAND_WILL
      • COMMAND_WONT

        static final byte[] COMMAND_WONT
      • COMMAND_SB

        static final byte[] COMMAND_SB
      • COMMAND_SE

        static final byte[] COMMAND_SE
      • 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
      • COMMAND_IS

        static final byte[] COMMAND_IS
        Is sequence (for subnegotiation)
      • COMMAND_AYT

        static final byte[] COMMAND_AYT
        AYT sequence
      • doResponse

        private final int[] doResponse
      • willResponse

        private final int[] willResponse
      • options

        private final int[] options
      • terminalType

        private java.lang.String terminalType
        Terminal type
      • aytMonitor

        private final java.lang.Object aytMonitor
        monitor to wait for AYT
      • aytFlag

        private volatile boolean aytFlag
        flag for AYT
      • spyStream

        private volatile java.io.OutputStream spyStream
        The stream on which to spy
    • Constructor Detail

      • Telnet

        Telnet()
        Empty Constructor
      • Telnet

        Telnet​(java.lang.String termtype)
        This constructor lets you specify the terminal type.
        Parameters:
        termtype - - terminal type to be negotiated (ej. VT100)
    • Method Detail

      • _connectAction_

        protected void _connectAction_()
                                throws java.io.IOException
        Called upon connection.
        Overrides:
        _connectAction_ in class SocketClient
        Throws:
        java.io.IOException - - Exception in I/O.
      • _registerSpyStream

        void _registerSpyStream​(java.io.OutputStream spystream)
        Registers an OutputStream for spying what's going on in the Telnet session.
        Parameters:
        spystream - - OutputStream on which session activity will be echoed.
      • _sendAYT

        final boolean _sendAYT​(java.time.Duration timeout)
                        throws java.io.IOException,
                               java.lang.IllegalArgumentException,
                               java.lang.InterruptedException
        Sends an Are You There (AYT) sequence and waits for the result.
        Parameters:
        timeout - - Time to wait for a response.
        Returns:
        true if AYT received a response, false otherwise
        Throws:
        java.io.IOException - - Exception in I/O.
        java.lang.IllegalArgumentException - - Illegal argument
        java.lang.InterruptedException - - Interrupted during wait.
      • _sendCommand

        final void _sendCommand​(byte cmd)
                         throws java.io.IOException
        Sends a command, automatically adds IAC prefix and flushes the output.
        Parameters:
        cmd - - command data to be sent
        Throws:
        java.io.IOException - - Exception in I/O.
        Since:
        3.0
      • _sendSubnegotiation

        final void _sendSubnegotiation​(int[] subn)
                                throws java.io.IOException
        Manages subnegotiation for Terminal Type.
        Parameters:
        subn - - subnegotiation data to be sent
        Throws:
        java.io.IOException - - Exception in I/O.
      • _stopSpyStream

        void _stopSpyStream()
        Stops spying this Telnet.
      • deleteOptionHandler

        void deleteOptionHandler​(int optcode)
                          throws InvalidTelnetOptionException,
                                 java.io.IOException
        Unregisters a TelnetOptionHandler.
        Parameters:
        optcode - - Code of the option to be unregistered.
        Throws:
        InvalidTelnetOptionException - - The option code is invalid.
        java.io.IOException - on error
      • processAYTResponse

        final void processAYTResponse()
        Processes the response of an AYT
      • processCommand

        void processCommand​(int command)
        Processes a COMMAND.
        Parameters:
        command - - option code to be set.
      • processDo

        void processDo​(int option)
                throws java.io.IOException
        Processes a DO request.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException - - Exception in I/O.
      • processDont

        void processDont​(int option)
                  throws java.io.IOException
        Processes a DONT request.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException - - Exception in I/O.
      • processSuboption

        void processSuboption​(int[] suboption,
                              int suboptionLength)
                       throws java.io.IOException
        Processes a suboption negotiation.
        Parameters:
        suboption - - subnegotiation data received
        suboptionLength - - length of data received
        Throws:
        java.io.IOException - - Exception in I/O.
      • processWill

        void processWill​(int option)
                  throws java.io.IOException
        Processes a WILL request.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException - - Exception in I/O.
      • processWont

        void processWont​(int option)
                  throws java.io.IOException
        Processes a WONT request.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException - - Exception in I/O.
      • 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
      • requestDo

        final void requestDo​(int option)
                      throws java.io.IOException
        Requests a DO.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • requestDont

        final void requestDont​(int option)
                        throws java.io.IOException
        Requests a DONT.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • requestedDo

        boolean requestedDo​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a DO has been requested.
      • requestedDont

        boolean requestedDont​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a DONT has been requested
      • requestedWill

        boolean requestedWill​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a WILL has been requested
      • requestedWont

        boolean requestedWont​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a WONT has been requested
      • requestWill

        final void requestWill​(int option)
                        throws java.io.IOException
        Requests a WILL.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • requestWont

        final void requestWont​(int option)
                        throws java.io.IOException
        Requests a WONT.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendByte

        final void sendByte​(int b)
                     throws java.io.IOException
        Sends a byte.
        Parameters:
        b - - byte to send
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendDo

        final void sendDo​(int option)
                   throws java.io.IOException
        Sends a DO.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendDont

        final void sendDont​(int option)
                     throws java.io.IOException
        Sends a DONT.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendTerminalType

        final void sendTerminalType()
                             throws java.io.IOException
        Sends terminal type information.
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendWill

        final void sendWill​(int option)
                     throws java.io.IOException
        Sends a WILL.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • sendWont

        final void sendWont​(int option)
                     throws java.io.IOException
        Sends a WONT.
        Parameters:
        option - - Option code.
        Throws:
        java.io.IOException - - Exception in I/O.
      • setDo

        void setDo​(int option)
            throws java.io.IOException
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException
      • setDont

        void setDont​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • setWantDo

        void setWantDo​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • setWantDont

        void setWantDont​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • setWantWill

        void setWantWill​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • setWantWont

        void setWantWont​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • setWill

        void setWill​(int option)
              throws java.io.IOException
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
        Throws:
        java.io.IOException
      • setWont

        void setWont​(int option)
        Sets the state of the option.
        Parameters:
        option - - option code to be set.
      • spyRead

        void spyRead​(int ch)
        Sends a read char on the spy stream.
        Parameters:
        ch - - character read from the session
      • spyWrite

        void spyWrite​(int ch)
        Sends a written char on the spy stream.
        Parameters:
        ch - - character written to the session
      • stateIsDo

        boolean stateIsDo​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a DO has been acknowledged.
      • stateIsDont

        boolean stateIsDont​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a DONT has been acknowledged
      • stateIsWill

        boolean stateIsWill​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a WILL has been acknowledged
      • stateIsWont

        boolean stateIsWont​(int option)
        Looks for the state of the option.
        Parameters:
        option - - option code to be looked up.
        Returns:
        returns true if a WONT has been acknowledged
      • unregisterNotifHandler

        public void unregisterNotifHandler()
        Unregisters the current notification handler.