From 9bf97f184718d10e941456fd8db7b003f99dd9a5 Mon Sep 17 00:00:00 2001 From: Kleme Date: Thu, 14 Sep 2017 18:44:13 +0200 Subject: [PATCH] 1.7.3 : One instance only and launching another one spawn a mario --- src/fr/klemek/minimario/Launch.java | 14 +++++ src/fr/klemek/minimario/LocalServer.java | 68 ++++++++++++++++++++++++ src/fr/klemek/minimario/MarioWindow.java | 2 + src/fr/klemek/minimario/TilePanel.java | 1 - 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/fr/klemek/minimario/LocalServer.java diff --git a/src/fr/klemek/minimario/Launch.java b/src/fr/klemek/minimario/Launch.java index eb5a4bc..84e2340 100644 --- a/src/fr/klemek/minimario/Launch.java +++ b/src/fr/klemek/minimario/Launch.java @@ -15,6 +15,8 @@ import java.util.Random; import javax.swing.SwingUtilities; +import fr.klemek.minimario.LocalServer.ConnectionListener; + public abstract class Launch { private static final String VERSION = "1.7.2"; @@ -32,6 +34,18 @@ public abstract class Launch { @Override public void run() { try { + LocalServer.startServer(new ConnectionListener(){ + @Override + public void onConnection() { + try { + new MarioWindow(null, currentFactor, null); + refreshTray(); + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + new MarioWindow(null, currentFactor, null); addTrayIcon(MarioWindow.getAll().get(0)); } catch (IOException e) { diff --git a/src/fr/klemek/minimario/LocalServer.java b/src/fr/klemek/minimario/LocalServer.java new file mode 100644 index 0000000..b64ba7b --- /dev/null +++ b/src/fr/klemek/minimario/LocalServer.java @@ -0,0 +1,68 @@ +package fr.klemek.minimario; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ServerSocket; +import java.net.Socket; + +public class LocalServer extends Thread { + + public static final int[] PORTS = {34881, 41834, 16118, 24326}; //4 random, one should be available + + public static final String CONTACT = "MiniMario !"; + + private ServerSocket serverSocket = null; + private Socket clientSocket = null; + + private ConnectionListener listener; + + public LocalServer(ConnectionListener listener){ + this.listener = listener; + } + + @Override + public void run() { + int i = 0; + while(i