Implement a daytime server in Java

You can either use a TCP or UDP version. With UDP, you will have to use a DatagramSocket to create and listen to a port. With TCP (see example), you need to instantiate a ServerSocket. The daytime port is 13. The server just creates a thread that loops indefinitely waiting for requests from clients and returns the current date.

To test out following server, compile the source of DaytimeClient (see DaytimeClient) and run it using

java DaytimeClient localhost

DaytimeServer.java:

import java.util.*;
import java.net.*;
import java.io.*;
 
public class DaytimeServer {
   public static void main(String args[]) {
      DaytimeServerThread es = new DaytimeServerThread();
      es.start();
   }
}
 
class DaytimeServerThread extends Thread {
   private ServerSocket ss;
   private final int port = 13;
 
   public void run() {
      try {
         ss = new ServerSocket(port);
      } 
      catch(IOException e) {
         e.printStackTrace();
         return;
      }
 
      try { 
         while (true) {
            Socket clientSock = ss.accept();
            BufferedWriter bw = new BufferedWriter(
                         new OutputStreamWriter(clientSock.getOutputStream()));
  
            bw.write("" + new Date());
            bw.flush();
            clientSock.close();
         }
      }
      catch(IOException e) {
         e.printStackTrace();
      }
   }
}