public class SocketUtils
extends java.lang.Object
localhost
.
Within this class, a TCP port refers to a port for a ServerSocket
;
whereas, a UDP port refers to a port for a DatagramSocket
.
Modifier and Type | Class and Description |
---|---|
private static class |
SocketUtils.SocketType |
Modifier and Type | Field and Description |
---|---|
static int |
PORT_RANGE_MAX
The default maximum value for port ranges used when finding an available
socket port.
|
static int |
PORT_RANGE_MIN
The default minimum value for port ranges used when finding an available
socket port.
|
private static java.util.Random |
random |
Constructor and Description |
---|
SocketUtils()
Although
SocketUtils consists solely of static utility methods,
this constructor is intentionally public . |
Modifier and Type | Method and Description |
---|---|
static int |
findAvailableTcpPort()
|
static int |
findAvailableTcpPort(int minPort)
Find an available TCP port randomly selected from the range
[
minPort , 65535]. |
static int |
findAvailableTcpPort(int minPort,
int maxPort)
Find an available TCP port randomly selected from the range
[
minPort , maxPort ]. |
static java.util.SortedSet<java.lang.Integer> |
findAvailableTcpPorts(int numRequested)
|
static java.util.SortedSet<java.lang.Integer> |
findAvailableTcpPorts(int numRequested,
int minPort,
int maxPort)
Find the requested number of available TCP ports, each randomly selected
from the range [
minPort , maxPort ]. |
static int |
findAvailableUdpPort()
|
static int |
findAvailableUdpPort(int minPort)
Find an available UDP port randomly selected from the range
[
minPort , 65535]. |
static int |
findAvailableUdpPort(int minPort,
int maxPort)
Find an available UDP port randomly selected from the range
[
minPort , maxPort ]. |
static java.util.SortedSet<java.lang.Integer> |
findAvailableUdpPorts(int numRequested)
|
static java.util.SortedSet<java.lang.Integer> |
findAvailableUdpPorts(int numRequested,
int minPort,
int maxPort)
Find the requested number of available UDP ports, each randomly selected
from the range [
minPort , maxPort ]. |
public static final int PORT_RANGE_MIN
public static final int PORT_RANGE_MAX
private static final java.util.Random random
public SocketUtils()
SocketUtils
consists solely of static utility methods,
this constructor is intentionally public
.
Static methods from this class may be invoked from within XML configuration files using the Spring Expression Language (SpEL) and the following syntax.
<bean id="bean1" ... p:port="#{T(org.springframework.util.SocketUtils).findAvailableTcpPort(12000)}" />
If this constructor were private
, you would be required to supply
the fully qualified class name to SpEL's T()
function for each usage.
Thus, the fact that this constructor is public
allows you to reduce
boilerplate configuration with SpEL as can be seen in the following example.
<bean id="socketUtils" class="org.springframework.util.SocketUtils" />
<bean id="bean1" ... p:port="#{socketUtils.findAvailableTcpPort(12000)}" />
<bean id="bean2" ... p:port="#{socketUtils.findAvailableTcpPort(30000)}" />
public static int findAvailableTcpPort()
java.lang.IllegalStateException
- if no available port could be foundpublic static int findAvailableTcpPort(int minPort)
minPort
, 65535].minPort
- the minimum port numberjava.lang.IllegalStateException
- if no available port could be foundpublic static int findAvailableTcpPort(int minPort, int maxPort)
minPort
, maxPort
].minPort
- the minimum port numbermaxPort
- the maximum port numberjava.lang.IllegalStateException
- if no available port could be foundpublic static java.util.SortedSet<java.lang.Integer> findAvailableTcpPorts(int numRequested)
numRequested
- the number of available ports to findjava.lang.IllegalStateException
- if the requested number of available ports could not be foundpublic static java.util.SortedSet<java.lang.Integer> findAvailableTcpPorts(int numRequested, int minPort, int maxPort)
minPort
, maxPort
].numRequested
- the number of available ports to findminPort
- the minimum port numbermaxPort
- the maximum port numberjava.lang.IllegalStateException
- if the requested number of available ports could not be foundpublic static int findAvailableUdpPort()
java.lang.IllegalStateException
- if no available port could be foundpublic static int findAvailableUdpPort(int minPort)
minPort
, 65535].minPort
- the minimum port numberjava.lang.IllegalStateException
- if no available port could be foundpublic static int findAvailableUdpPort(int minPort, int maxPort)
minPort
, maxPort
].minPort
- the minimum port numbermaxPort
- the maximum port numberjava.lang.IllegalStateException
- if no available port could be foundpublic static java.util.SortedSet<java.lang.Integer> findAvailableUdpPorts(int numRequested)
numRequested
- the number of available ports to findjava.lang.IllegalStateException
- if the requested number of available ports could not be foundpublic static java.util.SortedSet<java.lang.Integer> findAvailableUdpPorts(int numRequested, int minPort, int maxPort)
minPort
, maxPort
].numRequested
- the number of available ports to findminPort
- the minimum port numbermaxPort
- the maximum port numberjava.lang.IllegalStateException
- if the requested number of available ports could not be found