From bb967e083689236df0b603c25f90c0b5e36496f7 Mon Sep 17 00:00:00 2001 From: sachin <56427366+sachin071287@users.noreply.github.com> Date: Mon, 31 Jul 2023 22:45:49 +0530 Subject: [PATCH] BAEL-4895 brokenpipe error (#14346) Co-authored-by: Sachin kumar --- .../socketexception/brokenpipe/Client.java | 29 +++++++++++++++++++ .../socketexception/brokenpipe/Server.java | 28 ++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Client.java create mode 100644 core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Server.java diff --git a/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Client.java b/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Client.java new file mode 100644 index 0000000000..0d9b69412c --- /dev/null +++ b/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Client.java @@ -0,0 +1,29 @@ +package com.baeldung.socketexception.brokenpipe; + +import java.io.IOException; +import java.io.OutputStream; +import java.net.Socket; + +public class Client { + public static void main(String[] args) { + try { + Socket socket = new Socket("localhost", 1234); + OutputStream outputStream = socket.getOutputStream(); + + outputStream.write("HELLO".getBytes()); + System.out.println("Writing to server.."); + // Simulating a delay after writing to the socket + Thread.sleep(3000); + // Writing again to the closed socket + outputStream.write("HI".getBytes()); + System.out.println("Writing to server again.."); + + System.out.println("Closing client."); + outputStream.close(); + socket.close(); + } + catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + } +} diff --git a/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Server.java b/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Server.java new file mode 100644 index 0000000000..21c8bed638 --- /dev/null +++ b/core-java-modules/core-java-networking-4/src/main/java/com/baeldung/socketexception/brokenpipe/Server.java @@ -0,0 +1,28 @@ +package com.baeldung.socketexception.brokenpipe; + +import java.io.IOException; +import java.io.InputStream; +import java.net.ServerSocket; +import java.net.Socket; + +public class Server { + public static void main(String[] args) { + try { + ServerSocket serverSocket = new ServerSocket(1234); + System.out.println("Server listening on port 1234..."); + + Socket clientSocket = serverSocket.accept(); + System.out.println("Client connected: " + clientSocket.getInetAddress()); + //Add some delay for reading from client + Thread.sleep(2000); + InputStream in = clientSocket.getInputStream(); + System.out.println("Reading from client:" + in.read()); + in.close(); + clientSocket.close(); + serverSocket.close(); + } + catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + } +}