Interface NetClient

All Superinterfaces:
Measured

public interface NetClient extends Measured
A TCP client.

Multiple connections to different servers can be made using the same instance.

This client supports a configurable number of connection attempts and a configurable delay between attempts.

Author:
Tim Fox
  • Method Details

    • connect

      Future<NetSocket> connect(int port, String host)
      Open a connection to a server at the specific port and host.

      host can be a valid host name or IP address.

      Parameters:
      port - the port
      host - the host
      Returns:
      a future notified when the socket is connected
    • connect

      Future<NetSocket> connect(int port, String host, String serverName)
      Open a connection to a server at the specific port and host.

      host can be a valid host name or IP address.

      Parameters:
      port - the port
      host - the host
      serverName - the SNI server name
      Returns:
      a future notified when the socket is connected
    • connect

      Future<NetSocket> connect(SocketAddress remoteAddress)
      Open a connection to a server at the specific remoteAddress.
      Parameters:
      remoteAddress - the remote address
      Returns:
      a future notified when the socket is connected
    • connect

      Future<NetSocket> connect(SocketAddress remoteAddress, String serverName)
      Open a connection to a server at the specific remoteAddress.
      Parameters:
      remoteAddress - the remote address
      serverName - the SNI server name
      Returns:
      a future notified when the socket is connected
    • connect

      Future<NetSocket> connect(ConnectOptions connectOptions)
      Open a connection to a server at the specific connectOptions.
      Parameters:
      connectOptions - the options describing how to connect to the remote server
      Returns:
      a future notified when the socket is connected
    • close

      default Future<Void> close()
      Close immediately (shutdown(0, TimeUnit.SECONDS).
      Returns:
      a future notified when the client is closed
    • shutdown

      default Future<Void> shutdown()
      Shutdown with a 30 seconds timeout (shutdown(30, TimeUnit.SECONDS)).
      Returns:
      a future completed when shutdown has completed
    • shutdown

      default Future<Void> shutdown(long timeout, TimeUnit unit)
    • shutdown

      Future<Void> shutdown(Duration timeout)
      Initiate the client shutdown sequence.

      Connections are taken out of service and notified the close sequence has started through NetSocket.shutdownHandler(Handler). When all connections are closed the client is closed. When the timeout expires, all unclosed connections are immediately closed.

      Parameters:
      timeout - the amount of time after which all resources are forcibly closed
      Returns:
      a future notified when the client is closed
    • updateSSLOptions

      default Future<Boolean> updateSSLOptions(ClientSSLOptions options)

      Update the client with new SSL options, the update happens if the options object is valid and different from the existing options object.

      The boolean succeeded future result indicates whether the update occurred.

      Parameters:
      options - the new SSL options
      Returns:
      a future signaling the update success
    • updateSSLOptions

      Future<Boolean> updateSSLOptions(ClientSSLOptions options, boolean force)

      Update the client with new SSL options, the update happens if the options object is valid and different from the existing options object.

      The options object is compared using its equals method against the existing options to prevent an update when the objects are equals since loading options can be costly, this can happen for share TCP servers. When object are equals, setting force to true forces the update.

      The boolean succeeded future result indicates whether the update occurred.

      Parameters:
      options - the new SSL options
      force - force the update when options are equals
      Returns:
      a future signaling the update success