com.sta.mutils.RemoteUtils Maven / Gradle / Ivy
package com.sta.mutils;
import java.io.IOException;
import java.net.ServerSocket;
/**
* Name: RemoteUtil
* Description: Hilfsklasse f?r z. B. dynamische Port-Vergabe.
*
* Comment: ...
*
* Copyright: Copyright (c) 2021
* Company: >StA-Soft<
* @author StA
* @version 1.0
*/
public final class RemoteUtils
{
/**
* Ermittlung eines freien TCP-Ports.
* Der Port wird nicht reserviert. Vor der (eigenen) Verwendung des ermittelten Ports, kann es also theoretisch passieren,
* dass der Port bereits anderweitig verwendet wird. In so einem Fall sind Fehler abzufangen und die Port-Ermittlung
* erneut durchzuf?hen (bis die Verwendung des ermittelten Ports erfolgreich ist).
* @return freier TCP-Port
*/
public static int findFreePort()
{
try
{
ServerSocket server = new ServerSocket(0);
int port = server.getLocalPort();
server.close();
return port;
}
catch (IOException e)
{
throw new RuntimeException(e);
}
}
//===========================================================================
/**
* Dummy-Constructor.
*/
private RemoteUtils()
{
}
}