diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java index ca579ba..aed074a 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java @@ -38,7 +38,7 @@ public class NetworkManager implements Runnable { System.out.println("Accepted connection from " + clientSocket.getRemoteSocketAddress()); - Session session = new Session(clientSocket); + Session session = new Session(new TcpTransport(clientSocket)); session.start(); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Session.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Session.java index 855b9be..24b30d2 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Session.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Session.java @@ -1,29 +1,22 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network; -import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; -import java.net.Socket; -import java.nio.charset.StandardCharsets; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Session implements Runnable { private SessionId id; private Thread thread; - private Socket socket; - private DataInputStream in; - private DataOutputStream out; + private TransportLayer transport; private Logger logger; + private Boolean running; - public Session(Socket socket) throws IOException { + public Session(TransportLayer transport) throws IOException { this.id = new SessionId(); this.thread = new Thread(this, "session-" + this.id.value()); - this.socket = socket; - this.in = new DataInputStream(socket.getInputStream()); - this.out = new DataOutputStream(socket.getOutputStream()); + this.transport = transport; + this.running = true; this.logger = LogManager.getLogger(Session.class.toString() + id.value()); this.logger.info("Created new session"); @@ -37,22 +30,16 @@ public class Session implements Runnable { thread.start(); } - public String read() throws IOException { - int length = in.readInt(); - byte[] payload = new byte[length]; - in.readFully(payload); - return new String(payload, StandardCharsets.UTF_8); - } - public void close() throws IOException { - socket.close(); + transport.close(); + this.running = false; } @Override public void run() { - while (true) { + while (running) { try { - System.out.println("Recieved: " + read()); + System.out.println("Recieved: " + transport.read()); } catch (EOFException e) { logger.info("Client disconnected"); break;