From 5f6c3de854ccd651ac73134ee2ef358319dcb7a8 Mon Sep 17 00:00:00 2001 From: Paolo Manzi Date: Mon, 8 Apr 2024 23:41:54 +0200 Subject: [PATCH] Improved data transfer between client and server --- src/main/java/controllers/ServerThread.java | 31 ++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/controllers/ServerThread.java b/src/main/java/controllers/ServerThread.java index ca8f903..68f7267 100644 --- a/src/main/java/controllers/ServerThread.java +++ b/src/main/java/controllers/ServerThread.java @@ -9,8 +9,7 @@ import java.math.BigInteger; import java.net.Socket; import java.util.Arrays; -import static controllers.Database.getAccount; -import static controllers.Database.registerAccount; +import static controllers.Database.*; public class ServerThread extends Thread { private final Socket client; @@ -97,14 +96,21 @@ public class ServerThread extends Thread { MessageForwarder.addUser(clientId, this); - int recipientId; - String message; + String message,dUsername; + + + sendEncrypted("Inserisci l'username del destinatario: "); + try { + dUsername = rsa.decrypt(fromClient.readLine()); + } catch (IOException e) { + throw new RuntimeException(e); + } + int recipientId = getIdFromUsername(dUsername); + for (;;) { try { - sendEncrypted("A chi vuoi inviare un messaggio? "); - recipientId = Integer.parseInt(rsa.decrypt(fromClient.readLine())); - sendEncrypted("Inserisci il messaggio: "); + sendEncrypted("Inserisci messaggio: "); message = rsa.decrypt(fromClient.readLine()); } catch (IOException e) { throw new RuntimeException(e); @@ -112,6 +118,17 @@ public class ServerThread extends Thread { if (message == null || "DISCONNECT".equals(message)) break; + if ("CAMBIA_DESTINATARIO".equals(message)){ + try { + sendEncrypted("Inserisci l'username del nuovo destinatario: "); + dUsername = rsa.decrypt(fromClient.readLine()); + } catch (IOException e) { + throw new RuntimeException(e); + } + recipientId = getIdFromUsername(dUsername); + continue; + } + try { MessageForwarder.sendTo(recipientId, message, clientId); } catch (IOException e) {