diff --git a/chifu/build/built-jar.properties b/chifu/build/built-jar.properties index 25423fa..5f6e4ff 100644 --- a/chifu/build/built-jar.properties +++ b/chifu/build/built-jar.properties @@ -1,4 +1,4 @@ -#Fri, 05 May 2023 12:43:45 +0200 +#Fri, 05 May 2023 13:44:03 +0200 -/home/docente/Scaricati/chifu= +/home/docente/Progetti/Didattica_Socket/chifu= diff --git a/chifu/build/classes/chefu/finestra$1.class b/chifu/build/classes/chefu/finestra$1.class deleted file mode 100644 index 8dd4a32..0000000 Binary files a/chifu/build/classes/chefu/finestra$1.class and /dev/null differ diff --git a/chifu/build/classes/chefu/finestra$2.class b/chifu/build/classes/chefu/finestra$2.class deleted file mode 100644 index 01a2fcc..0000000 Binary files a/chifu/build/classes/chefu/finestra$2.class and /dev/null differ diff --git a/chifu/build/classes/chefu/finestra$3.class b/chifu/build/classes/chefu/finestra$3.class deleted file mode 100644 index 3996710..0000000 Binary files a/chifu/build/classes/chefu/finestra$3.class and /dev/null differ diff --git a/chifu/build/classes/chefu/finestra$4.class b/chifu/build/classes/chefu/finestra$4.class deleted file mode 100644 index 85c4f9d..0000000 Binary files a/chifu/build/classes/chefu/finestra$4.class and /dev/null differ diff --git a/chifu/build/classes/chefu/finestra$5.class b/chifu/build/classes/chefu/finestra$5.class deleted file mode 100644 index 85644bc..0000000 Binary files a/chifu/build/classes/chefu/finestra$5.class and /dev/null differ diff --git a/chifu/build/classes/chifu/Finestra.class b/chifu/build/classes/chifu/Finestra.class index 3fcd63f..c58020f 100644 Binary files a/chifu/build/classes/chifu/Finestra.class and b/chifu/build/classes/chifu/Finestra.class differ diff --git a/chifu/build/classes/chifu/GestoreServer.class b/chifu/build/classes/chifu/GestoreServer.class index da48442..91c6157 100644 Binary files a/chifu/build/classes/chifu/GestoreServer.class and b/chifu/build/classes/chifu/GestoreServer.class differ diff --git a/chifu/build/classes/chifu/Messaggio.class b/chifu/build/classes/chifu/Messaggio.class index ac013bc..b17fd25 100644 Binary files a/chifu/build/classes/chifu/Messaggio.class and b/chifu/build/classes/chifu/Messaggio.class differ diff --git a/chifu/dist/chifu.jar b/chifu/dist/chifu.jar index 7967751..c70f2cd 100644 Binary files a/chifu/dist/chifu.jar and b/chifu/dist/chifu.jar differ diff --git a/chifu/src/chifu/Finestra.java b/chifu/src/chifu/Finestra.java index 876142a..0c01520 100644 --- a/chifu/src/chifu/Finestra.java +++ b/chifu/src/chifu/Finestra.java @@ -80,7 +80,9 @@ public class Finestra extends javax.swing.JFrame { }//GEN-LAST:event_jButton1ActionPerformed private void avviaLoop() { + new Thread(() -> { + while(true) { if(!server_on) { System.out.println("Avvio il server"); @@ -89,10 +91,10 @@ public class Finestra extends javax.swing.JFrame { try { GestoreServer.messaggio = GestoreServer.ascolta(); - server_on = false; System.out.println("ho ricevuto un qualcosa e dovrei avere un messaggio"); jTextArea1.append(GestoreServer.messaggio.messaggio + "\n"); GestoreServer.messaggio = null; + server_on = false; repaint(); System.out.println("fine metodo"); } catch (Exception ex) { diff --git a/chifu/src/chifu/GestoreServer.java b/chifu/src/chifu/GestoreServer.java index 8b9b437..117d4d1 100644 --- a/chifu/src/chifu/GestoreServer.java +++ b/chifu/src/chifu/GestoreServer.java @@ -27,7 +27,7 @@ public class GestoreServer { System.out.println("Ho ricevuto un messaggio da: " + pacchetto.getAddress().getHostAddress()); - messaggio = (Messaggio) new ObjectInputStream(new ByteArrayInputStream(pacchetto.getData())).readObject(); + messaggio = Messaggio.toMessaggio(pacchetto.getData()); server.close(); System.out.println("Server chiuso"); @@ -42,13 +42,13 @@ public class GestoreServer { InetAddress destinatario = InetAddress.getByName(host); DatagramSocket client = new DatagramSocket(); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - new ObjectOutputStream(out).writeObject(messaggio); - byte[] flusso_messaggio = out.toByteArray(); + byte[] flusso_messaggio = messaggio.toByteArray(); DatagramPacket pacchetto = new DatagramPacket(flusso_messaggio, flusso_messaggio.length, destinatario, port); client.send(pacchetto); client.close(); } + + } diff --git a/chifu/src/chifu/Messaggio.java b/chifu/src/chifu/Messaggio.java index 0f0f737..84adc06 100644 --- a/chifu/src/chifu/Messaggio.java +++ b/chifu/src/chifu/Messaggio.java @@ -1,5 +1,10 @@ package chifu; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; public class Messaggio implements Serializable { @@ -12,4 +17,15 @@ public class Messaggio implements Serializable { this.nome = ip; this.messaggio = messaggio; } + + public byte[] toByteArray() throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + new ObjectOutputStream(out).writeObject(this); + return out.toByteArray(); + } + + public static Messaggio toMessaggio(byte[] vettore) throws IOException, ClassNotFoundException { + Messaggio messaggio = (Messaggio) new ObjectInputStream(new ByteArrayInputStream(vettore)).readObject(); + return messaggio; + } }