Package org.h2.util

Class NetUtils

java.lang.Object
org.h2.util.NetUtils

public class NetUtils extends Object
This utility class contains socket helper functions.
  • Field Details

    • CACHE_MILLIS

      private static final int CACHE_MILLIS
      See Also:
    • cachedBindAddress

      private static InetAddress cachedBindAddress
    • cachedLocalAddress

      private static String cachedLocalAddress
    • cachedLocalAddressTime

      private static long cachedLocalAddressTime
  • Constructor Details

    • NetUtils

      private NetUtils()
  • Method Details

    • createLoopbackSocket

      public static Socket createLoopbackSocket(int port, boolean ssl) throws IOException
      Create a loopback socket (a socket that is connected to localhost) on this port.
      Parameters:
      port - the port
      ssl - if SSL should be used
      Returns:
      the socket
      Throws:
      IOException - on failure
    • createSocket

      public static Socket createSocket(String server, int defaultPort, boolean ssl) throws IOException
      Create a client socket that is connected to the given address and port.
      Parameters:
      server - to connect to (including an optional port)
      defaultPort - the default port (if not specified in the server address)
      ssl - if SSL should be used
      Returns:
      the socket
      Throws:
      IOException - on failure
    • createSocket

      public static Socket createSocket(String server, int defaultPort, boolean ssl, int networkTimeout) throws IOException
      Create a client socket that is connected to the given address and port.
      Parameters:
      server - to connect to (including an optional port)
      defaultPort - the default port (if not specified in the server address)
      ssl - if SSL should be used
      networkTimeout - socket so timeout
      Returns:
      the socket
      Throws:
      IOException - on failure
    • createSocket

      public static Socket createSocket(InetAddress address, int port, boolean ssl) throws IOException
      Create a client socket that is connected to the given address and port.
      Parameters:
      address - the address to connect to
      port - the port
      ssl - if SSL should be used
      Returns:
      the socket
      Throws:
      IOException - on failure
    • createSocket

      public static Socket createSocket(InetAddress address, int port, boolean ssl, int networkTimeout) throws IOException
      Create a client socket that is connected to the given address and port.
      Parameters:
      address - the address to connect to
      port - the port
      ssl - if SSL should be used
      networkTimeout - socket so timeout
      Returns:
      the socket
      Throws:
      IOException - on failure
    • createServerSocket

      public static ServerSocket createServerSocket(int port, boolean ssl)
      Create a server socket. The system property h2.bindAddress is used if set. If SSL is used and h2.enableAnonymousTLS is true, an attempt is made to modify the security property jdk.tls.legacyAlgorithms (in newer JVMs) to allow anonymous TLS.

      This system change is effectively permanent for the lifetime of the JVM.

      Parameters:
      port - the port to listen on
      ssl - if SSL should be used
      Returns:
      the server socket
      See Also:
    • getBindAddress

      private static InetAddress getBindAddress() throws UnknownHostException
      Get the bind address if the system property h2.bindAddress is set, or null if not.
      Returns:
      the bind address
      Throws:
      UnknownHostException
    • createServerSocketTry

      private static ServerSocket createServerSocketTry(int port, boolean ssl)
    • isLocalAddress

      public static boolean isLocalAddress(Socket socket) throws UnknownHostException
      Check if a socket is connected to a local address.
      Parameters:
      socket - the socket
      Returns:
      true if it is
      Throws:
      UnknownHostException - on failure
    • closeSilently

      public static ServerSocket closeSilently(ServerSocket socket)
      Close a server socket and ignore any exceptions.
      Parameters:
      socket - the socket
      Returns:
      null
    • getLocalAddress

      public static String getLocalAddress()
      Get the local host address as a string. For performance, the result is cached for one second.
      Returns:
      the local host address
    • getHostName

      public static String getHostName(String localAddress)
      Get the host name of a local address, if available.
      Parameters:
      localAddress - the local address
      Returns:
      the host name, or another text if not available
    • ipToShortForm

      public static StringBuilder ipToShortForm(StringBuilder builder, byte[] address, boolean addBrackets)
      Appends short representation of the specified IP address to the string builder.
      Parameters:
      builder - string builder to append to, or null
      address - IP address
      addBrackets - if (true, add brackets around IPv6 addresses
      Returns:
      the specified or the new string builder with short representation of specified address