From ba2f41daf7385fa6483b27486912e10abfee3756 Mon Sep 17 00:00:00 2001 From: GustavoHMDS Date: Mon, 28 Sep 2026 18:59:20 -0300 Subject: [PATCH] WIP bug fix --- pitiupi.testSocket/dist/testSocket.jar | Bin 0 -> 6537 bytes .../out/GUI/SocketTestMenu.class | Bin 0 -> 1306 bytes .../out/GUI/SocketTestWindow.class | Bin 0 -> 6218 bytes pitiupi.testSocket/out/net/TestMessage.class | Bin 0 -> 739 bytes .../out/plugin/SocketTest.class | Bin 0 -> 1934 bytes pitiupi.testSocket/pitiupi.testSocket.iml | 20 +++++++ .../src/GUI/SocketTestMenu.java | 2 +- .../src/GUI/SocketTestWindow.java | 6 +- pitiupi.testSocket/src/plugin/SocketTest.java | 29 ++++++++-- .../src/pitiupi/control/HeartbeatManager.java | 2 +- pitiupi/src/pitiupi/net/tcp/SocketTCP.java | 52 +++++------------- .../src/pitiupi/net/tcp/SysInfoMessage.java | 7 --- pitiupi/src/pitiupi/net/udp/SocketUDP.java | 30 ++-------- pitiupi/src/pitiupi/plugin/Plugin.java | 2 +- 14 files changed, 72 insertions(+), 78 deletions(-) create mode 100644 pitiupi.testSocket/dist/testSocket.jar create mode 100644 pitiupi.testSocket/out/GUI/SocketTestMenu.class create mode 100644 pitiupi.testSocket/out/GUI/SocketTestWindow.class create mode 100644 pitiupi.testSocket/out/net/TestMessage.class create mode 100644 pitiupi.testSocket/out/plugin/SocketTest.class create mode 100644 pitiupi.testSocket/pitiupi.testSocket.iml diff --git a/pitiupi.testSocket/dist/testSocket.jar b/pitiupi.testSocket/dist/testSocket.jar new file mode 100644 index 0000000000000000000000000000000000000000..3b6438b3ccb62d29b66c776245e082711a2c73e1 GIT binary patch literal 6537 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 W22w^tzj4I5{wZ~q6(G7Jy^ literal 0 HcmV?d00001 diff --git a/pitiupi.testSocket/out/GUI/SocketTestMenu.class b/pitiupi.testSocket/out/GUI/SocketTestMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..724eae7b0f1314eca64b1a1d6d958a91c7231beb GIT binary patch literal 1306 zcma)6ZBG+H5Pr54u00M~%A2UX3euLs;S0VMQK+bx){qoS^xKwOFhexIXICdA^n~wE9z|o6_)QJBaGN2*cRbU!HiffmJ7r-oEX6NGDpN`){1|xE z)5W2%Jbkrpmo;5aSi(t5;4uy3m>>$dVYD7IOf{0Y5+G5K*-vS>gJ~j~AQ%>Xqn2vO z1RK$`>s8#vtb(|P1d53614@>HH#&|5R89H6c|P>X5FZdJPT%QgKkE$rX}82 z%0=O9@w#oVOZ3XB|10wN6jKm34-rZjcwrM&5h zG=sKbQ6pwb+;xSk;3dOM8z+~gr(lg??E0(p1o&KFl8O+Z`Jus=^G~|~?K?3?Yl@_z zd`;-TkURlP&V7fHjP=wI`GNkACm777Vna3DNF`4(0@N^?Ow};C{k4ubPwN!n17QTA z(%Ov(`4~nIM$wB|lI9U557Ywc*4nVP=YngoI}Zn4K$V^3{Xgmv=87O?$ci* Vy#s+CD3E^TeARlD!4-B-IW($(7j=e;+XnK1g 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 Ts7zOyi{@t0J)+wj%EHb&;lq6q literal 0 HcmV?d00001 diff --git a/pitiupi.testSocket/out/plugin/SocketTest.class b/pitiupi.testSocket/out/plugin/SocketTest.class new file mode 100644 index 0000000000000000000000000000000000000000..549bbe961e20b616ea8af3bb7051b74d7eb6b4f3 GIT binary patch literal 1934 zcmah}YgZFj6x|mRCWPT34>f{{C_3R46hRAU1qv9O0BsOU>1#-C>1dcqGczbZrN5wS z^;7L?VXd-OmwxSk>SN!@1Oj9&KjhB6_v~}dKIiP*zyJO7F93^>aWtS&LqtauO#&S+ z%{?h?>S_XL_|E!*-Q3p5(ZjTmAAE$h%>C#imRzEW6;mj-wr&ic6P3uaPNP zp5>RUl!9hW%dUWCk{iwF!9@+1bX-P4;6kbB?^t$CIFfP$f+w*BE@tZGoYBxrnx{=! zY5Q?p!Bs`(nn1#+@0;9+qaQak4CuItTg*|Pvw&t63MwigMn<*yP0D?3vC+@eEo;(n zTcF*RUP^J!O4l`aIG;f^pQJ!vFdEBA&F_11u3R?v({{=Ca$Z@QyKxv8R#Zm>qQ=&| ziZ({pRiDZ*PdSWYTshnoxLo0rV(c0O8O1S*2_5$_DG+CxLRAypMlvX&Rw*-Tb`Nws z#76>cWto@Oo(!wtw2jP}%7Th#1iGpm)2oYb^0MSvj;-O5K!0Eew75_-U3bOtmK@(M z9HW}?F`j6c(=m^QQ`*h#yPn*oWF4Oh?x}EPd240M4m(D=i&)aItm7%tRT@FI;{*aR z&tZc(B~?Lf&6QgQ`4kxqSsg1_tp+)rh?6g=v_+dt!cGTi!Vqdyp9$Qq>L!#jsqUGc zTySige?#_UEs(fCWWgy&3MFINa>d`>mgRMGyT}`DM|vyfE_cn`&H3IBPMLG#enXaB zMi6M_AzhHRXMJx;8udJ<>d9(og*~3wCDvQzq(&DSII-58XXamJ%~Ft9!`A{0Tl3UW zIP`PW1qM$3%PN+aFQwM=rIX?)2C@nLmB3wrTOaaKGN;rWyYh-G6dhLIj^8N%{G Gs>1*0$Es=o literal 0 HcmV?d00001 diff --git a/pitiupi.testSocket/pitiupi.testSocket.iml b/pitiupi.testSocket/pitiupi.testSocket.iml new file mode 100644 index 0000000..4e2cbb3 --- /dev/null +++ b/pitiupi.testSocket/pitiupi.testSocket.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pitiupi.testSocket/src/GUI/SocketTestMenu.java b/pitiupi.testSocket/src/GUI/SocketTestMenu.java index 8b4984f..0f04bf9 100644 --- a/pitiupi.testSocket/src/GUI/SocketTestMenu.java +++ b/pitiupi.testSocket/src/GUI/SocketTestMenu.java @@ -8,7 +8,7 @@ public class SocketTestMenu extends JMenu { public SocketTestMenu(SocketTestWindow socketTestWindow) { this.socketTestWindow = socketTestWindow; - this.setText("Chat"); + this.setText("MP-Chat"); JMenuItem menuItem = new JMenuItem(); menuItem.setText("Show Chat Window"); menuItem.addActionListener(this::showTestWindow); diff --git a/pitiupi.testSocket/src/GUI/SocketTestWindow.java b/pitiupi.testSocket/src/GUI/SocketTestWindow.java index 32f3944..e4d70d0 100644 --- a/pitiupi.testSocket/src/GUI/SocketTestWindow.java +++ b/pitiupi.testSocket/src/GUI/SocketTestWindow.java @@ -96,7 +96,7 @@ public class SocketTestWindow extends JFrame { try { TestMessage msg = createMessage("TCP Unicast"); InetAddress ip = InetAddress.getByName(ipField.getText()); - mainWindow.getSocketTCP().send(msg.toByteArray(), ip); + mainWindow.getSocketTCP().send(msg, ip); } catch (Exception ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } @@ -106,7 +106,7 @@ public class SocketTestWindow extends JFrame { try { TestMessage msg = createMessage("UDP Unicast"); InetAddress ip = InetAddress.getByName(ipField.getText()); - mainWindow.getSocketUDP().sendUnicast(msg.toByteArray(), ip); + mainWindow.getSocketUDP().sendUnicast(msg, ip); } catch (Exception ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } @@ -114,7 +114,7 @@ public class SocketTestWindow extends JFrame { public void sendMulticast() { try { TestMessage msg = createMessage("UDP Multicast"); - mainWindow.getSocketUDP().sendMulticast(msg.toByteArray()); + mainWindow.getSocketUDP().sendMulticast(msg); } catch (Exception ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } diff --git a/pitiupi.testSocket/src/plugin/SocketTest.java b/pitiupi.testSocket/src/plugin/SocketTest.java index 66ef6f0..145dbca 100644 --- a/pitiupi.testSocket/src/plugin/SocketTest.java +++ b/pitiupi.testSocket/src/plugin/SocketTest.java @@ -5,13 +5,14 @@ import GUI.SocketTestWindow; import net.TestMessage; import pitiupi.GUI.MainWindow; import pitiupi.net.Message; -import pitiupi.plugin.Plugin; +import pitiupi.net.tcp.TcpConnection; +import pitiupi.plugin.PrivateConnectionPlugin; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; -public class SocketTest implements Plugin{ +public class SocketTest implements PrivateConnectionPlugin{ SocketTestWindow socketTestWindow; @Override @@ -29,6 +30,11 @@ public class SocketTest implements Plugin{ return "0"; } + @Override + public String getIdentifier() { + return "Socket.Test.123456"; + } + @Override public void createPlugin(MainWindow mainWindow) { this.socketTestWindow = new SocketTestWindow(mainWindow); @@ -41,8 +47,8 @@ public class SocketTest implements Plugin{ } @Override - public void receiveMessage(byte[] bytes) { - ByteArrayInputStream bis = new ByteArrayInputStream(bytes); + public void receiveMessage(byte[] message) { + ByteArrayInputStream bis = new ByteArrayInputStream(message); ObjectInputStream ois; try { ois = new ObjectInputStream(bis); @@ -53,4 +59,19 @@ public class SocketTest implements Plugin{ System.out.println(ex.toString()); } } + + @Override + public void receivePrivateConnection(TcpConnection tcpConnection) { + + } + + @Override + public void receiveBytes(TcpConnection connection, byte[] bytes) { + + } + + @Override + public void onSocketClosed(TcpConnection tcpConnection) { + + } } diff --git a/pitiupi/src/pitiupi/control/HeartbeatManager.java b/pitiupi/src/pitiupi/control/HeartbeatManager.java index 1cfa480..08b21be 100644 --- a/pitiupi/src/pitiupi/control/HeartbeatManager.java +++ b/pitiupi/src/pitiupi/control/HeartbeatManager.java @@ -66,7 +66,7 @@ public class HeartbeatManager { private void announce() { try { HeartbeatMessage msg = new HeartbeatMessage(mainWindow.getUserName(), instanceId); - mainWindow.getSocketUDP().sendMulticast(msg.toByteArray()); + mainWindow.getSocketUDP().sendMulticast(msg); } catch (IOException ex) { Logger.getLogger(HeartbeatManager.class.getName()).log(Level.WARNING, "Falha ao enviar heartbeat", ex); } diff --git a/pitiupi/src/pitiupi/net/tcp/SocketTCP.java b/pitiupi/src/pitiupi/net/tcp/SocketTCP.java index 326d23d..074c36c 100644 --- a/pitiupi/src/pitiupi/net/tcp/SocketTCP.java +++ b/pitiupi/src/pitiupi/net/tcp/SocketTCP.java @@ -316,47 +316,25 @@ public class SocketTCP extends Thread { while (running) { try { byte[] bytes = connection.receive(); - try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); - ObjectInputStream ois = new ObjectInputStream(bis)) { - Object object = ois.readObject(); - if (object instanceof Message message) { - SysInfoMessage sysMessage = SysInfoMessage.parseSystemInfo(message); + SysInfoMessage sysMessage = SysInfoMessage.parseSystemInfo(bytes); - if (sysMessage == null) { - for (Plugin plugin : main.getPlugins()) { - plugin.receiveMessage(message); - } - continue; - } - - switch (sysMessage.getType()) { - case CONNECTION_CLOSED, INTERNAL_ERROR -> { - connectionManager.closeConnection(connection); - return; - } - case MESSAGE_REJECTED -> { - logger.log(Level.SEVERE, "Somehow sent something that was not an Message"); - } - default -> {} - } - } - else { - SysInfoMessage.sendSystemInfo( - connection, - SysInfoType.MESSAGE_REJECTED, - "Public messages must be instances of Message" - ); + if (sysMessage == null) { + for (Plugin plugin : main.getPlugins()) { + plugin.receiveMessage(bytes); } + continue; } - catch (ClassNotFoundException ex) { - SysInfoMessage.sendSystemInfo( - connection, - SysInfoType.INTERNAL_ERROR, - "class Message not found." - ); - logger.log(Level.SEVERE, null, ex); - connectionManager.closeConnection(connection); + + switch (sysMessage.getType()) { + case CONNECTION_CLOSED, INTERNAL_ERROR -> { + connectionManager.closeConnection(connection); + return; + } + case MESSAGE_REJECTED -> { + logger.log(Level.SEVERE, "Somehow sent something that was not an Message"); + } + default -> {} } } catch (SocketTimeoutException ex) { diff --git a/pitiupi/src/pitiupi/net/tcp/SysInfoMessage.java b/pitiupi/src/pitiupi/net/tcp/SysInfoMessage.java index e10c9b7..9e149eb 100644 --- a/pitiupi/src/pitiupi/net/tcp/SysInfoMessage.java +++ b/pitiupi/src/pitiupi/net/tcp/SysInfoMessage.java @@ -48,11 +48,4 @@ public class SysInfoMessage extends Message { } return null; } - - public static SysInfoMessage parseSystemInfo(Message message) { - if (message instanceof SysInfoMessage) { - return (SysInfoMessage) message; - } - return null; - } } diff --git a/pitiupi/src/pitiupi/net/udp/SocketUDP.java b/pitiupi/src/pitiupi/net/udp/SocketUDP.java index da9fa5f..a4a42f2 100644 --- a/pitiupi/src/pitiupi/net/udp/SocketUDP.java +++ b/pitiupi/src/pitiupi/net/udp/SocketUDP.java @@ -74,7 +74,7 @@ public class SocketUDP extends Thread { * @param msg mensagem serializada a ser enviada. * @throws IOException caso ocorra um erro durante o envio. */ - public void sendMulticast(byte[] msg) throws IOException { + public void sendMulticast(Message msg) throws IOException { send(msg, this.address); } @@ -85,7 +85,7 @@ public class SocketUDP extends Thread { * @param destinationAddress endereço IP do peer destinatário. * @throws IOException caso ocorra um erro durante o envio. */ - public void sendUnicast(byte[] msg, InetAddress destinationAddress) throws IOException { + public void sendUnicast(Message msg, InetAddress destinationAddress) throws IOException { send(msg, destinationAddress); } @@ -96,9 +96,10 @@ public class SocketUDP extends Thread { * @param destinationAddress endereço de destino. * @throws IOException caso ocorra um erro durante o envio. */ - private void send(byte[] msg, InetAddress destinationAddress) throws IOException { + private void send(Message msg, InetAddress destinationAddress) throws IOException { DatagramPacket msgPacket; - msgPacket = new DatagramPacket(msg, msg.length, destinationAddress, this.main.getPort()); + byte[] buf = msg.toByteArray(); + msgPacket = new DatagramPacket(buf, buf.length, destinationAddress, this.main.getPort()); multicastSocket.send(msgPacket); } @@ -149,14 +150,9 @@ public class SocketUDP extends Thread { continue; } - Message message = tryParseMessage(msgPacket.getData()); - if (message == null) { - continue; - } - for (Plugin plugin : main.getPlugins()) { System.out.println(msgPacket.getAddress().toString()); - plugin.receiveMessage(message); + plugin.receiveMessage(msgPacket.getData()); } } } @@ -179,20 +175,6 @@ public class SocketUDP extends Thread { } } - private Message tryParseMessage(byte[] data) { - try { - ByteArrayInputStream bis = new ByteArrayInputStream(data); - ObjectInputStream ois = new ObjectInputStream(bis); - - Object object = ois.readObject(); - - if (object instanceof Message message) return message; - return null; - } catch (IOException | ClassNotFoundException ex) { - return null; - } - } - /** * Inicia a recepção de mensagens UDP. */ diff --git a/pitiupi/src/pitiupi/plugin/Plugin.java b/pitiupi/src/pitiupi/plugin/Plugin.java index 6159842..108deb1 100644 --- a/pitiupi/src/pitiupi/plugin/Plugin.java +++ b/pitiupi/src/pitiupi/plugin/Plugin.java @@ -47,6 +47,6 @@ public interface Plugin { * * @param message mensagem serializada recebida. */ - public void receiveMessage(Message message); + public void receiveMessage(byte[] message); } \ No newline at end of file