Class TcpServer

All Implemented Interfaces:
Closeable, AutoCloseable, ConnectionListener

public class TcpServer extends TcpBaseServer
Class that manages allows to send and receive messages via TCP sockets. Uses 1 thread/connection to read messages.
  • Field Details

    • srv_sock

      protected ServerSocket srv_sock
    • acceptor

      protected Thread acceptor
    • log_accept_error

      protected boolean log_accept_error
  • Constructor Details

    • TcpServer

      public TcpServer(InetAddress bind_addr, int port) throws Exception
      Creates an instance of TcpServer that creates a server socket and listens for connections. The end port defaults to (port + 50). Needs to be started next.
      Parameters:
      bind_addr - The local address to bind to. If null, the address will be picked by the OS
      port - The local port to bind to. If 0, the port will be picked by the OS.
      Throws:
      Exception - Thrown if the creation failed
    • TcpServer

      public TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory, InetAddress bind_addr, int srv_port, int end_port, InetAddress external_addr, int external_port, int recv_buf_size) throws Exception
      Throws:
      Exception
    • TcpServer

      public TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory, InetAddress bind_addr, int srv_port, int end_port, InetAddress external_addr, int external_port, int recv_buf_size, String service_name) throws Exception
      Creates an instance of TcpServer that creates a server socket and listens for connections Needs to be started next.
      Parameters:
      thread_factory - The thread factory used to create new threads
      socket_factory - The socket factory used to create sockets
      bind_addr - The local address to bind to. If null, the address will be picked by the OS
      srv_port - The local port to bind to. If 0, the port will be picked by the OS.
      end_port - If srv_port is taken, the next port is tried, until end_port has been reached, in which case an exception will be thrown. If srv_port == end_port, only 1 port will be tried.
      external_addr - The external address in case of NAT. Ignored if null.
      external_port - The external port on the NA. If 0, srv_port is used.
      recv_buf_size - The size of the initial TCP receive window (in bytes)
      service_name - The name of the service
      Throws:
      Exception - Thrown if the creation failed
  • Method Details

    • getLogAcceptError

      public boolean getLogAcceptError()
    • setLogAcceptError

      public TcpServer setLogAcceptError(boolean l)
    • start

      public void start() throws Exception
      Description copied from class: BaseServer
      Starts accepting connections. Typically, socket handler or selectors thread are started here.
      Overrides:
      start in class BaseServer
      Throws:
      Exception
    • stop

      public void stop()
      Description copied from class: BaseServer
      Stops listening for connections and handling traffic. Typically, socket handler or selector threads are stopped, and server sockets or channels are closed.
      Overrides:
      stop in class BaseServer