import java.io.Console;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
public class DateServer {
public final static int PORT = 5000;
private ServerSocket ss;
public DateServer(int port) {
try {
ss = new ServerSocket(port);
} catch (IOException ioe) {
System.err.println("Unable to create server socket: " + ioe);
System.exit(1);
}
}
private void runServer() {
Console console = System.console();
Handler h = new Handler(ss);
h.start();
while (true) {
String cmd = console.readLine(">");
if (cmd == null)
continue;
if (cmd.equals("exit"))
System.exit(0);
}
}
public static void main(String[] args) {
new DateServer(PORT).runServer();
}
}
class Handler extends Thread {
private ServerSocket ss;
Handler(ServerSocket ss) {
this.ss = ss;
}
public void run() {
while (true) {
try {
Socket s = ss.accept();
ObjectInputStream ois;
ois = new ObjectInputStream(s.getInputStream());
Locale l = (Locale) ois.readObject();
PrintWriter pw;
pw = new PrintWriter(s.getOutputStream());
MessageFormat mf;
mf = new MessageFormat("The date is {0, date, long}", l);
Object[] args = { new Date() };
pw.println(mf.format(args));
pw.close();
} catch (Exception e) {
System.err.println(e);
}
}
}
}