From 7f967f68180c8d362d4d613427239fcd04fbbde3 Mon Sep 17 00:00:00 2001 From: Jonas Date: Fri, 25 Mar 2022 12:39:20 +0100 Subject: [PATCH] ClientPinger and ServerPinger "merged" from the ping branch --- .../Multiplayer/helpers/ClientPinger.java | 14 ++++++++++- .../Multiplayer/helpers/PingListener.java | 8 ------- .../cs108/Multiplayer/helpers/PingPong.java | 24 ------------------- .../helpers/PingPongInterface.java | 6 ----- .../cs108/Multiplayer/helpers/PongSender.java | 8 ------- .../Multiplayer/helpers/ServerPinger.java | 13 +++++++++- 6 files changed, 25 insertions(+), 48 deletions(-) delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ClientPinger.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ClientPinger.java index 669fbd3..6e565e0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ClientPinger.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ClientPinger.java @@ -30,9 +30,21 @@ public class ClientPinger implements Runnable{ public void run() { try { while (socket.isConnected()) { + gotPingBack = false; out.write("CPING"); + out.newLine(); + out.flush(); Thread.sleep(2000); - if (!gotPingBack) isConnected = false; + if (gotPingBack) { + if (!isConnected) { //if !isConnected, then the connection had been lost before. + isConnected = true; + System.out.println("Connection regained!"); + } + } else { + isConnected = false; + System.out.println("Lost connection. Waiting to reconnect..."); + } + } isConnected = false; //in case the socket accidentally disconnects (can this happen?) } catch (InterruptedException e) { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java deleted file mode 100644 index e4b898b..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; - -public class PingListener implements Runnable { - @Override - public void run() { - - } -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java deleted file mode 100644 index be33416..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java +++ /dev/null @@ -1,24 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; - -/** - * PingPong offers services to for listening and sending - * Pings to a communication partner. - * Runs on a Thread as not to disturb other communication channels.(Is this necessary?) - */ -public class PingPong implements PingPongInterface { - @Override - public void pingListener(String ping) { - - } - - @Override - public String pongSender() { - return null; - } - - @Override - public void run() { - - } - //TODO: Impl -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java deleted file mode 100644 index 6327b05..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java +++ /dev/null @@ -1,6 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; - -public interface PingPongInterface extends Runnable{ - void pingListener(String ping); - String pongSender(); -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java deleted file mode 100644 index 2e645bf..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java +++ /dev/null @@ -1,8 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; - -public class PongSender implements Runnable{ - @Override - public void run() { - - } -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ServerPinger.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ServerPinger.java index ac9cebc..83ca36a 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ServerPinger.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/ServerPinger.java @@ -30,9 +30,20 @@ public class ServerPinger implements Runnable{ public void run() { try { while (socket.isConnected()) { + gotPingBack = false; out.write("SPING"); + out.newLine(); + out.flush(); Thread.sleep(2000); - if (!gotPingBack) isConnected = false; + if (gotPingBack) { + if (!isConnected) { //if !isConnected, then the connection had been lost before. + isConnected = true; + System.out.println("Connection regained!"); + } + } else { + isConnected = false; + System.out.println("Lost connection. Waiting to reconnect..."); + } } isConnected = false; //in case the socket accidentally disconnects (can this happen?) } catch (InterruptedException e) {