import java.net.*; import java.io.*; public class EchoServer { public static void main(String[] args) throws IOException { if (args.length != 1) { System.err.println("Usage: java EchoServer "); System.exit(1); } int portNumber = Integer.parseInt(args[0]); try ( ServerSocket serverSocket = new ServerSocket(); ) { serverSocket.bind(new InetSocketAddress("localhost", Integer.parseInt(args[0]) ) ); try ( Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); ) { // no catch here System.out.println("Connected to "+clientSocket.getInetAddress().toString()+":"+clientSocket.getPort()); String inputLine; while ((inputLine = in.readLine()) != null) { out.println(inputLine); System.out.println("echoing: "+inputLine); } } catch (IOException e) { System.out.println("Exception caught when trying to listen on port " + portNumber + " or listening for a connection"); System.out.println(e.getMessage()); } } } }