Skip to content
Snippets Groups Projects
Commit e61f9860 authored by Elrabu's avatar Elrabu
Browse files

Update: Added Getter/Setter to the ConnectionHandler class and added a stop...

Update: Added Getter/Setter to the ConnectionHandler class and added a stop method for the Thread in the server class.
parent 1f48dc75
No related branches found
No related tags found
3 merge requests!74V1,!73Initial commit,!71Merge DataBase into Development
package de.hdm_stuttgart.battlearena.Model.Multiplayer.TestServer;
package de.hdm_stuttgart.battlearena.Model.Multiplayer;
import de.hdm_stuttgart.battlearena.Model.Multiplayer.ConnectionHandler;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -13,7 +12,7 @@ public class Client {
private PrintWriter out;
private BufferedReader in;
private static final Logger log = LogManager.getLogger(ConnectionHandler.class);
private static final Logger log = LogManager.getLogger(Client.class);
public void startConnection(String ip, int port) throws IOException {
clientSocket = new Socket(ip, port);
......
package de.hdm_stuttgart.battlearena.Model.Multiplayer.TestServer;
package de.hdm_stuttgart.battlearena.Model.Multiplayer;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.concurrent.TimeUnit;
public class ConnectionHandling {
public class ConnectionHandler {
private int px;
private int py;
private int pX;
private int pY;
private int enemyX;
private int enemyY;
private static int[] coordinates = {5,10};
public static void main(String[] args) throws IOException, InterruptedException {
Client client = new Client();
client.startConnection("localhost", 4444);
int[] cords = client.sendcords(coordinates);
System.out.println(cords);
//stop the connection:
client.stopConnection();
}
public int getpX() {
return pX;
}
public void setpX(int pX) {
this.pX = pX;
}
public int getpY() {
return pY;
}
public void setpY(int pY) {
this.pY = pY;
}
public int getEnemyX() {
return enemyX;
}
public void setEnemyX(int enemyX) {
this.enemyX = enemyX;
}
public int getPx() {
return px;
public int getEnemyY() {
return enemyY;
}
public int getPy() {
return py;
public void setEnemyY(int enemyY) {
this.enemyY = enemyY;
}
}
package de.hdm_stuttgart.battlearena.Model.Multiplayer.TestServer;
package de.hdm_stuttgart.battlearena.Model.Multiplayer;
import de.hdm_stuttgart.battlearena.Model.Multiplayer.GameServer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.net.*;
import java.io.*;
import java.util.Arrays;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
......@@ -15,9 +13,13 @@ public class Server {
private static final Logger log = LogManager.getLogger(Server.class);
private ServerSocket serverSocket;
private static boolean isServerRunning = true;
private static int px;
private static int py;
private static int enemyx;
private static int enemyy;
private static int[] cords;
public static void main(String[] args) throws IOException {
......@@ -29,16 +31,9 @@ public class Server {
public void start(String lolcalhost, int port) throws IOException {
serverSocket = new ServerSocket(port);
log.info("server started!");
while (true)
new ServerHandler(serverSocket.accept()).start();
}
public void stop() throws IOException {
serverSocket.close();
new ServerHandler(serverSocket.accept()).start();
}
// EchoClientHandler class in the Server
private static class ServerHandler extends Thread {
private Socket clientSocket;
private PrintWriter out;
......@@ -71,6 +66,18 @@ public class Server {
log.info(cords);
//check if server was shut down:
if (!isServerRunning) {
executorService.shutdown();
try {
if (!executorService.awaitTermination(5, TimeUnit.SECONDS)) {
executorService.shutdownNow();
}
} catch (InterruptedException e) {
log.error("Error waiting for executor service termination: " + e.getMessage());
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
......@@ -78,4 +85,13 @@ public class Server {
}
}
public void stopServer() {
isServerRunning = false;
try {
serverSocket.close(); // Close the server socket to break out of accept() in the main thread
} catch (IOException e) {
log.error("Error closing server socket: " + e.getMessage());
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment