From ef828c752b1d9859b8bb243438756bceebe6be83 Mon Sep 17 00:00:00 2001 From: Miguel Reboiro-Jato Date: Thu, 28 Sep 2023 16:34:23 +0200 Subject: [PATCH] Closes unclosed streams in message example The streams used to read and write the message object in the example 4 were not closed. This commit fixes this error. --- pom.xml | 2 +- .../dai/sockets/example4/MessageReceiver.java | 6 ++-- .../dai/sockets/example4/MessageSender.java | 28 ++++++++++--------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 55be368..dfbfda9 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ es.uvigo.esei.dai sockets - 1.0.0 + 1.0.1 Ejemplos de DAI - Sockets 2014 diff --git a/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageReceiver.java b/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageReceiver.java index 068bb67..64d10c4 100644 --- a/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageReceiver.java +++ b/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageReceiver.java @@ -37,10 +37,10 @@ public class MessageReceiver { socket.receive(packet); - try { + try ( final ByteArrayInputStream input = new ByteArrayInputStream(buffer); - final ObjectInputStream dataInput = new ObjectInputStream(input); - + final ObjectInputStream dataInput = new ObjectInputStream(input) + ) { final Message message = (Message) dataInput.readObject(); System.out.println("SUBJECT: " + message.getSubject()); diff --git a/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageSender.java b/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageSender.java index 52b7703..d805746 100644 --- a/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageSender.java +++ b/src/main/java/es/uvigo/esei/dai/sockets/example4/MessageSender.java @@ -32,19 +32,21 @@ import java.util.Date; public class MessageSender { public static void main(String[] args) { try (DatagramSocket socket = new DatagramSocket()) { - final ByteArrayOutputStream output = new ByteArrayOutputStream(60000); - final ObjectOutputStream dataOutput = new ObjectOutputStream(output); - - final Message message = new Message("Time", "Current time: " + new Date()); - System.out.println("SUBJECT: " + message.getSubject()); - System.out.println("MESSAGE: " + message.getMessage()); - dataOutput.writeObject(message); - - final DatagramPacket packet = new DatagramPacket( - output.toByteArray(), output.size(), InetAddress.getLocalHost(), 1234 - ); - - socket.send(packet); + try ( + final ByteArrayOutputStream output = new ByteArrayOutputStream(1500); + final ObjectOutputStream dataOutput = new ObjectOutputStream(output) + ) { + final Message message = new Message("Time", "Current time: " + new Date()); + System.out.println("SUBJECT: " + message.getSubject()); + System.out.println("MESSAGE: " + message.getMessage()); + dataOutput.writeObject(message); + + final DatagramPacket packet = new DatagramPacket( + output.toByteArray(), output.size(), InetAddress.getLocalHost(), 60000 + ); + + socket.send(packet); + } } catch (final IOException e) { System.out.print("Connection error: "); System.out.println(e.getMessage()); -- 2.18.1