From 3aa0d6343911f81efb96746fa1154a5b579199fe Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 25 Nov 2015 21:46:19 +0100 Subject: [PATCH] Testen ob Port 1111 verfuegbar, wenn nicht App beenden. --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index 479ab65..a96d61c 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -26,6 +26,10 @@ import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; import javafx.stage.StageStyle; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.ServerSocket; public class Main extends Application { @@ -98,9 +102,35 @@ public class Main extends Application { * @param args Commandline parameters */ public static void main(String[] args) { + if (isRunning()) { + LoggerFactory.getLogger(Main.class).error("App already running or Port 1111 in use."); + System.exit(2); + } + launch(args); } + /** + * @return true wenn der Port 1111 bereits belegt ist, false sonst. + */ + private static boolean isRunning() { + ServerSocket socket = null; + try { + socket = new ServerSocket(1111); + socket.setReuseAddress(true); + return false; + } catch (IOException ignored) { + } finally { + if (socket != null) { + try { + socket.close(); + } catch (IOException ignored) { + } + } + } + return true; + } + @Override public void stop() throws Exception { if (server != null) {