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 TypeMethodDescription
      booleanclose()
      Call this method to close the socket.
      CodepageConvertergetCodepageConverter()
      Gets the codepage converter for EBCDIC characters.
      java.lang.StringgetDeviceName()
      Gets the device name of the session.
      TelnetCommPropsgetProperties()
      Gets the Telnet properties.
      SocketCommNIOgetSocketCommNIO()
      Gets the NIO Socket Communication instance.
      SocketCommNIO.StategetState()
      Gets the state of the connection.
      java.lang.StringgetTerminalType()
      Gets the negotiated terminal type, null for none.
      booleanhasBeenOpen()
      Checks if the session has been opened, and if so cannot be reopened but needs to have a new instance.
      booleanisClosed()
      Checks if the connection is disposed of.
      voidopen()
      Opens the communication.
      booleansendSpecialKey​(int param)
      Sends TN3270E special key (param=0 is Attention and param=1 is SysReq).
      voidsendSSCPLUData​(byte[] buf, int n)
      Sends SSCP LU data for a TN3270E session.
      voidwrite​(byte[] buf)
      Writes a raw buffer to the output followed by a flush.
      voidwrite​(byte[] buf, int n)
      Writes an amount of bytes.
      voidwriteRaw​(byte[] buf)
      Writes a raw buffer to the output followed by a flush.
      voidwriteRaw​(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.