/** * Handle one client connection. Return when client disconnect. * * @param clientSocket socket for a connected client to handle * @throws IOException if connection encounters an error */ private void handle(Socket clientSocket) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream())); try { // each request is a single line of message String request = in.readLine(); while (request != null) { sendReply(out, request); request = in.readLine(); } } finally { out.close(); in.close(); } }