Class NetUtils
java.lang.Object
org.h2.util.NetUtils
This utility class contains socket helper functions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static InetAddressprivate static Stringprivate static long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ServerSocketcloseSilently(ServerSocket socket) Close a server socket and ignore any exceptions.static SocketcreateLoopbackSocket(int port, boolean ssl) Create a loopback socket (a socket that is connected to localhost) on this port.static ServerSocketcreateServerSocket(int port, boolean ssl) Create a server socket.private static ServerSocketcreateServerSocketTry(int port, boolean ssl) static SocketcreateSocket(String server, int defaultPort, boolean ssl) Create a client socket that is connected to the given address and port.static SocketcreateSocket(String server, int defaultPort, boolean ssl, int networkTimeout) Create a client socket that is connected to the given address and port.static SocketcreateSocket(InetAddress address, int port, boolean ssl) Create a client socket that is connected to the given address and port.static SocketcreateSocket(InetAddress address, int port, boolean ssl, int networkTimeout) Create a client socket that is connected to the given address and port.private static InetAddressGet the bind address if the system property h2.bindAddress is set, or null if not.static StringgetHostName(String localAddress) Get the host name of a local address, if available.static StringGet the local host address as a string.static StringBuilderipToShortForm(StringBuilder builder, byte[] address, boolean addBrackets) Appends short representation of the specified IP address to the string builder.static booleanisLocalAddress(Socket socket) Check if a socket is connected to a local address.
-
Field Details
-
CACHE_MILLIS
private static final int CACHE_MILLIS- See Also:
-
cachedBindAddress
-
cachedLocalAddress
-
cachedLocalAddressTime
private static long cachedLocalAddressTime
-
-
Constructor Details
-
NetUtils
private NetUtils()
-
-
Method Details
-
createLoopbackSocket
Create a loopback socket (a socket that is connected to localhost) on this port.- Parameters:
port- the portssl- if SSL should be used- Returns:
- the socket
- Throws:
IOException- on failure
-
createSocket
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 usednetworkTimeout- socket so timeout- Returns:
- the socket
- Throws:
IOException- on failure
-
createSocket
Create a client socket that is connected to the given address and port.- Parameters:
address- the address to connect toport- the portssl- 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 toport- the portssl- if SSL should be usednetworkTimeout- socket so timeout- Returns:
- the socket
- Throws:
IOException- on failure
-
createServerSocket
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 onssl- if SSL should be used- Returns:
- the server socket
- See Also:
-
getBindAddress
Get the bind address if the system property h2.bindAddress is set, or null if not.- Returns:
- the bind address
- Throws:
UnknownHostException
-
createServerSocketTry
-
isLocalAddress
Check if a socket is connected to a local address.- Parameters:
socket- the socket- Returns:
- true if it is
- Throws:
UnknownHostException- on failure
-
closeSilently
Close a server socket and ignore any exceptions.- Parameters:
socket- the socket- Returns:
- null
-
getLocalAddress
Get the local host address as a string. For performance, the result is cached for one second.- Returns:
- the local host address
-
getHostName
-
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, ornulladdress- IP addressaddBrackets- if (true, add brackets around IPv6 addresses- Returns:
- the specified or the new string builder with short representation of specified address
-