Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
65404c210b
@ -0,0 +1,52 @@
|
|||||||
|
package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a ping to the server ("CPING") every 2 seconds and checks if it has gotten a pingback.
|
||||||
|
* The actual logging of the pingback (via the gotPingBack boolean) has to be done elsewhere,
|
||||||
|
* depends on how the client receives and parses messages.
|
||||||
|
*/
|
||||||
|
public class ClientPinger implements Runnable{
|
||||||
|
private boolean gotPingBack; //should be set to true (via setGotPingBack) as soon as the client gets a pingback.
|
||||||
|
private boolean isConnected; //set to true unless the ClientPinger detects a connection loss.
|
||||||
|
BufferedWriter out; //the output of this client through which the pings are sent
|
||||||
|
public boolean isRunning; //can be set to false to tell the ping-er to quit
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param out the output through which the pings are sent.
|
||||||
|
*/
|
||||||
|
public ClientPinger(BufferedWriter out) {
|
||||||
|
gotPingBack = false;
|
||||||
|
isConnected = true;
|
||||||
|
this.out = out;
|
||||||
|
isRunning = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
while (isRunning) {
|
||||||
|
out.write("CPING");
|
||||||
|
Thread.sleep(2000);
|
||||||
|
if (!gotPingBack) isConnected = false;
|
||||||
|
}
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGotPingBack(boolean gotPingBack) {
|
||||||
|
this.gotPingBack = gotPingBack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isConnected() {
|
||||||
|
return isConnected;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a ping to the client ("SPING") every 2 seconds and checks if it has gotten a pingback.
|
||||||
|
* The actual logging of the pingback (via the gotPingBack boolean) has to be done elsewhere,
|
||||||
|
* depends on how the server receives and parses messages.
|
||||||
|
*/
|
||||||
|
public class ServerPinger implements Runnable{
|
||||||
|
private boolean gotPingBack; //should be set to true (via setGotPingBack) as soon as the server gets a pingback.
|
||||||
|
private boolean isConnected; //set to true unless the ServerPinger detects a connection loss.
|
||||||
|
BufferedWriter out; //the output of this client through which the pings are sent
|
||||||
|
public boolean isRunning; //can be set to false to tell the ping-er to quit
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param out the output through which the pings are sent.
|
||||||
|
*/
|
||||||
|
public ServerPinger(BufferedWriter out) {
|
||||||
|
gotPingBack = false;
|
||||||
|
isConnected = true;
|
||||||
|
this.out = out;
|
||||||
|
isRunning = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
while (isRunning) {
|
||||||
|
out.write("SPING");
|
||||||
|
Thread.sleep(2000);
|
||||||
|
if (!gotPingBack) isConnected = false;
|
||||||
|
}
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGotPingBack(boolean gotPingBack) {
|
||||||
|
this.gotPingBack = gotPingBack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isConnected() {
|
||||||
|
return isConnected;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user