Class ClientListenerRunner

java.lang.Object
net.i2p.router.client.ClientListenerRunner
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
SSLClientListenerRunner

class ClientListenerRunner extends Object implements Runnable
Listen for connections on the specified port, and toss them onto the client manager's set of connections once they are established. This is not used for internal (in-JVM) connections - see ClientManager and QueuedClientConnectionRunner. Note that this is extended by SSLClientListenerRunner for SSL, and by DomainClientListenerRunner in Android for domain sockets.
Author:
jrandom
  • Field Details

    • _log

      protected final Log _log
    • _context

      protected final RouterContext _context
    • _manager

      protected final ClientManager _manager
    • _socket

      protected ServerSocket _socket
    • _port

      protected final int _port
    • _bindAllInterfaces

      protected final boolean _bindAllInterfaces
    • _running

      protected volatile boolean _running
    • _listening

      protected volatile boolean _listening
    • BIND_ALL_INTERFACES

      public static final String BIND_ALL_INTERFACES
      See Also:
    • CONNECT_TIMEOUT

      protected static final int CONNECT_TIMEOUT
      give the i2cp client 5 seconds to show that they're really i2cp clients
      See Also:
  • Constructor Details

  • Method Details

    • isListening

      public boolean isListening()
    • getServerSocket

      protected ServerSocket getServerSocket() throws IOException
      Get a ServerSocket. Split out so it can be overridden for SSL.
      Throws:
      IOException
      Since:
      0.8.3
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • runServer

      protected void runServer()
      Start up the socket listener, listens for connections, and fires those connections off via runConnection. This only returns if the socket cannot be opened or there is a catastrophic failure.
    • validate

      protected boolean validate(Socket socket)
      Verify the first byte.
    • runConnection

      protected void runConnection(Socket socket)
      Handle the connection by passing it off to a ClientConnectionRunner
    • stopListening

      public void stopListening()