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
This commit is contained in:
MickWerf
2020-05-18 14:09:48 +02:00
parent 7969746bc1
commit 8dee45a844
8 changed files with 56 additions and 15 deletions

View File

@@ -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) {

View File

@@ -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;
}

View File

@@ -8,7 +8,6 @@ public class Server {
private SessionController sessionController;
private Thread sessionThread;
private HashMap<String, Thread> gameThreads;
public static final int PORT = 8000;
public void start() {
this.sessionController = new SessionController();

View File

@@ -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<ServerClient> clients = new ArrayList<>();
private HashMap<String, Thread> 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) {
}
}

View File

@@ -0,0 +1,4 @@
package netwerkprog.game.server.data;
public class Data {
}

View File

@@ -0,0 +1,10 @@
package netwerkprog.game.server.data;
public class DataParser {
public DataParser() {
}
public Data parse(String request) {
return null;
}
}

View File

@@ -0,0 +1,4 @@
package netwerkprog.game.server.data;
public class Event {
}

View File

@@ -0,0 +1,8 @@
package netwerkprog.game.util;
public class ServerData {
public static int port() {
return 8000;
}
}