Class TelnetComm


  • public class TelnetComm
    extends java.lang.Object
    Class to handle the Telnet protocol for 3270 and 5250.
    Author:
    Christopher Mindus
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean close()
      Call this method to close the socket.
      CodepageConverter getCodepageConverter()
      Gets the codepage converter for EBCDIC characters.
      java.lang.String getDeviceName()
      Gets the device name of the session.
      TelnetCommProps getProperties()
      Gets the Telnet properties.
      SocketCommNIO getSocketCommNIO()
      Gets the NIO Socket Communication instance.
      SocketCommNIO.State getState()
      Gets the state of the connection.
      java.lang.String getTerminalType()
      Gets the negotiated terminal type, null for none.
      boolean hasBeenOpen()
      Checks if the session has been opened, and if so cannot be reopened but needs to have a new instance.
      boolean isClosed()
      Checks if the connection is disposed of.
      void open()
      Opens the communication.
      boolean sendSpecialKey​(int param)
      Sends TN3270E special key (param=0 is Attention and param=1 is SysReq).
      void sendSSCPLUData​(byte[] buf, int n)
      Sends SSCP LU data for a TN3270E session.
      void write​(byte[] buf)
      Writes a raw buffer to the output followed by a flush.
      void write​(byte[] buf, int n)
      Writes an amount of bytes.
      void writeRaw​(byte[] buf)
      Writes a raw buffer to the output followed by a flush.
      void writeRaw​(byte[] buf, int count)
      Writes a raw buffer to the output followed by a flush.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TelnetComm

        public TelnetComm​(SessionInfo sessionInfo,
                          TelnetCommProps properties,
                          boolean is3270,
                          Worker worker,
                          TelnetCommListener listener,
                          javax.net.ssl.SSLEngine engine)
                   throws java.io.IOException
        Creates a new Telnet Client Communication channel as UNINITIALIZED.
        Parameters:
        sessionInfo - Session information.
        properties - The Telnet properties.
        is3270 - Flag for 3270.
        worker - The worker thread for socket processing.
        listener - The listener for Telnet events.
        engine - The SSL engine, or null for plain socket.
        Throws:
        java.io.IOException - for I/O errors.
    • Method Detail

      • getSocketCommNIO

        public SocketCommNIO getSocketCommNIO()
        Gets the NIO Socket Communication instance.
        Returns:
        The socket communication instance.
      • getTerminalType

        public java.lang.String getTerminalType()
        Gets the negotiated terminal type, null for none.
        Returns:
        The terminal type, null for none.
      • getProperties

        public TelnetCommProps getProperties()
        Gets the Telnet properties.
        Returns:
        The telnet settings.
      • getCodepageConverter

        public CodepageConverter getCodepageConverter()
        Gets the codepage converter for EBCDIC characters.
        Returns:
        The codepage converter.
      • open

        public void open()
                  throws java.io.IOException
        Opens the communication.
        Throws:
        java.io.IOException - For I/O errors.
      • hasBeenOpen

        public boolean hasBeenOpen()
        Checks if the session has been opened, and if so cannot be reopened but needs to have a new instance.
        Returns:
        true if opened.
      • getState

        public SocketCommNIO.State getState()
        Gets the state of the connection.
        Returns:
        Connection state.
      • isClosed

        public boolean isClosed()
        Checks if the connection is disposed of.
        Returns:
        true for closed.
      • close

        public boolean close()
        Call this method to close the socket.
        Returns:
        true if closed, false if already closed.
      • write

        public void write​(byte[] buf)
                   throws java.io.IOException
        Writes a raw buffer to the output followed by a flush.
        Parameters:
        buf - Data to send.
        Throws:
        java.io.IOException - For send failures.
      • write

        public void write​(byte[] buf,
                          int n)
                   throws java.io.IOException
        Writes an amount of bytes. The data is appended with and end-of-record (IAC EOR). Each 0xFF character in the buffer is escaped with 0xFF (i.e. IAC IAC).
        Parameters:
        buf - The byte array to write.
        n - Count of bytes to write.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • writeRaw

        public void writeRaw​(byte[] buf)
                      throws java.io.IOException
        Writes a raw buffer to the output followed by a flush.
        Parameters:
        buf - The byte buffer.
        Throws:
        java.io.IOException - for send IO failures.
      • writeRaw

        public void writeRaw​(byte[] buf,
                             int count)
                      throws java.io.IOException
        Writes a raw buffer to the output followed by a flush.
        Parameters:
        buf - The byte buffer.
        count - The count of bytes from beginning of buffer to write.
        Throws:
        java.io.IOException - for send IO failures.
      • getDeviceName

        public java.lang.String getDeviceName()
        Gets the device name of the session.
        Returns:
        null if no device name exists.
      • sendSSCPLUData

        public void sendSSCPLUData​(byte[] buf,
                                   int n)
                            throws java.io.IOException
        Sends SSCP LU data for a TN3270E session.
        Parameters:
        buf - The buffer.
        n - The count of bytes.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • sendSpecialKey

        public boolean sendSpecialKey​(int param)
                               throws java.io.IOException
        Sends TN3270E special key (param=0 is Attention and param=1 is SysReq).
        Parameters:
        param - The special send key.
        Returns:
        false if this special key is not supported.
        Throws:
        java.io.IOException - if an I/O error occurs.