From 8dee45a844bc71d03bef9e8738326adb56d0fc36 Mon Sep 17 00:00:00 2001 From: MickWerf Date: Mon, 18 May 2020 14:09:48 +0200 Subject: [PATCH] Added skeleton for Server Connection structure changes. Added Data and Event classes for Data saving on the server. Added DataParser class for translating requests to data. Added ServerData package --- core/src/netwerkprog/game/MainGame.java | 3 +- core/src/netwerkprog/game/client/Client.java | 5 +-- core/src/netwerkprog/game/server/Server.java | 1 - .../server/controllers/SessionController.java | 36 +++++++++++++------ .../netwerkprog/game/server/data/Data.java | 4 +++ .../game/server/data/DataParser.java | 10 ++++++ .../netwerkprog/game/server/data/Event.java | 4 +++ .../src/netwerkprog/game/util/ServerData.java | 8 +++++ 8 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 core/src/netwerkprog/game/server/data/Data.java create mode 100644 core/src/netwerkprog/game/server/data/DataParser.java create mode 100644 core/src/netwerkprog/game/server/data/Event.java create mode 100644 core/src/netwerkprog/game/util/ServerData.java diff --git a/core/src/netwerkprog/game/MainGame.java b/core/src/netwerkprog/game/MainGame.java index 874d811..42e7bfd 100644 --- a/core/src/netwerkprog/game/MainGame.java +++ b/core/src/netwerkprog/game/MainGame.java @@ -8,7 +8,6 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import netwerkprog.game.client.Client; -import netwerkprog.game.server.Server; import netwerkprog.game.util.FrameRate; public class MainGame extends ApplicationAdapter { @@ -44,7 +43,7 @@ public class MainGame extends ApplicationAdapter { private void connectToServer() { - client = new Thread(new Client("localhost", Server.PORT)); + client = new Thread(new Client("localhost")); try { client.start(); } catch (Exception e) { diff --git a/core/src/netwerkprog/game/client/Client.java b/core/src/netwerkprog/game/client/Client.java index 734b038..058c7b4 100644 --- a/core/src/netwerkprog/game/client/Client.java +++ b/core/src/netwerkprog/game/client/Client.java @@ -1,6 +1,7 @@ package netwerkprog.game.client; import netwerkprog.game.util.Controller; +import netwerkprog.game.util.ServerData; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -16,8 +17,8 @@ public class Client extends Controller { - public Client(String hostname, int port) { - this.port = port; + public Client(String hostname) { + this.port = ServerData.port(); this.hostname = hostname; } diff --git a/core/src/netwerkprog/game/server/Server.java b/core/src/netwerkprog/game/server/Server.java index 50dcbb4..1e48ddb 100644 --- a/core/src/netwerkprog/game/server/Server.java +++ b/core/src/netwerkprog/game/server/Server.java @@ -8,7 +8,6 @@ public class Server { private SessionController sessionController; private Thread sessionThread; private HashMap gameThreads; - public static final int PORT = 8000; public void start() { this.sessionController = new SessionController(); diff --git a/core/src/netwerkprog/game/server/controllers/SessionController.java b/core/src/netwerkprog/game/server/controllers/SessionController.java index 8239891..409e3b5 100644 --- a/core/src/netwerkprog/game/server/controllers/SessionController.java +++ b/core/src/netwerkprog/game/server/controllers/SessionController.java @@ -1,8 +1,10 @@ package netwerkprog.game.server.controllers; -import netwerkprog.game.server.Server; import netwerkprog.game.server.ServerClient; +import netwerkprog.game.server.data.Data; +import netwerkprog.game.server.data.DataParser; import netwerkprog.game.util.Controller; +import netwerkprog.game.util.ServerData; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -14,6 +16,7 @@ import java.util.HashMap; public class SessionController extends Controller { private ServerSocket serverSocket; + private DataParser parser; private ArrayList clients = new ArrayList<>(); private HashMap clientThreads = new HashMap<>(); @@ -23,29 +26,29 @@ public class SessionController extends Controller { public void connect() { try { - this.serverSocket = new ServerSocket(Server.PORT); - System.out.println("[SERVER] listening on port " + Server.PORT); + this.serverSocket = new ServerSocket(ServerData.port()); + System.out.println("[SERVER] listening on port " + ServerData.port()); Socket socket = serverSocket.accept(); System.out.println("[SERVER] got new client on " + socket.getInetAddress().getHostAddress()); DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); DataInputStream inputStream = new DataInputStream(socket.getInputStream()); - outputStream.writeUTF("Enter nickname: "); - String nickname = inputStream.readUTF(); + outputStream.writeUTF("Enter username: "); + String username = inputStream.readUTF(); - System.out.println("[SERVER] got nickname " + nickname); - ServerClient serverClient = new ServerClient(nickname, socket, this); + System.out.println("[SERVER] got username " + username); + ServerClient serverClient = new ServerClient(username, socket, this); Thread t = new Thread(serverClient); t.start(); - clientThreads.put(nickname, t); + clientThreads.put(username, t); this.clients.add(serverClient); - sendMessage(nickname, "--- Welcome! ---\nPeople online : " + clients.size()); + sendMessage(username, "--- Welcome! ---\nPeople online : " + clients.size()); - clients.forEach(yeet -> sendToEveryoneExcept(nickname, nickname + " joined the server! [" + socket.getInetAddress().getHostAddress() + "]")); + clients.forEach(yeet -> sendToEveryoneExcept(username, username + " joined the server! [" + socket.getInetAddress().getHostAddress() + "]")); this.serverSocket.close(); @@ -101,4 +104,17 @@ public class SessionController extends Controller { } } } + + public void listen() { + + } + + //will most likely be removed. + public void parseData(String request) { + Data data = this.parser.parse(request); + } + + public void sendData(Data data) { + + } } diff --git a/core/src/netwerkprog/game/server/data/Data.java b/core/src/netwerkprog/game/server/data/Data.java new file mode 100644 index 0000000..eb7d778 --- /dev/null +++ b/core/src/netwerkprog/game/server/data/Data.java @@ -0,0 +1,4 @@ +package netwerkprog.game.server.data; + +public class Data { +} diff --git a/core/src/netwerkprog/game/server/data/DataParser.java b/core/src/netwerkprog/game/server/data/DataParser.java new file mode 100644 index 0000000..4212272 --- /dev/null +++ b/core/src/netwerkprog/game/server/data/DataParser.java @@ -0,0 +1,10 @@ +package netwerkprog.game.server.data; + +public class DataParser { + public DataParser() { + } + + public Data parse(String request) { + return null; + } +} diff --git a/core/src/netwerkprog/game/server/data/Event.java b/core/src/netwerkprog/game/server/data/Event.java new file mode 100644 index 0000000..9e67273 --- /dev/null +++ b/core/src/netwerkprog/game/server/data/Event.java @@ -0,0 +1,4 @@ +package netwerkprog.game.server.data; + +public class Event { +} diff --git a/core/src/netwerkprog/game/util/ServerData.java b/core/src/netwerkprog/game/util/ServerData.java new file mode 100644 index 0000000..5d9582a --- /dev/null +++ b/core/src/netwerkprog/game/util/ServerData.java @@ -0,0 +1,8 @@ +package netwerkprog.game.util; + +public class ServerData { + + public static int port() { + return 8000; + } +}