import java.net.*;
import java.io.*;
import java.util.*;

public class MyServer {
    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(Integer.parseInt(args[0]));
        } catch (IOException e) {
            System.err.println("Could not listen on port");
            System.exit(1);
        }
  
      while (true) {
        Socket clientSocket = null;
        try {
            System.out.println("Server listnening");
            clientSocket = serverSocket.accept();
        } catch (IOException e) {
            System.err.println("Accept failed.");
            System.exit(1);
        }

        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                clientSocket.getInputStream()));
        String inputLine, outputLine;

        out.println("Welcome to the echo server.");

        while ((inputLine = in.readLine()) != null) {
             if (inputLine.equals("Bye.")) break;
             Date now = new Date(System.currentTimeMillis());
             out.println(now+": "+inputLine);
        }
        out.close();
        in.close();
        clientSocket.close();
      }
    }
}
