example/EchoService.java (30 lines of code) (raw):

import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; class EchoService { public static void receive(int port) { try (ServerSocket sock = new ServerSocket(port)) { System.out.println("Listening on port " + port); while (!Thread.currentThread().isInterrupted()) { try (Socket client = sock.accept()) { InputStream inputStream = client.getInputStream(); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); String msg = (String) objectInputStream.readObject(); System.out.println("Received message " + msg); ObjectOutputStream objectOutputStream = new ObjectOutputStream(client.getOutputStream()); objectOutputStream.writeObject(msg); } } } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); throw new IllegalStateException(e); } } public static void main(String[] args) { int port = Integer.parseInt(args[0]); receive(port); } }