//File javac SocketLocalServer1 import java.net.*; import java.io.*; import java.util.Date; public class SocketLocalServer1 extends Thread { private static int port; private ServerSocket serverSocket; Date now = new Date(); public SocketLocalServer1(int port) throws IOException { serverSocket = new ServerSocket(port); serverSocket.setSoTimeout(20000); } public void run() { while(true) { try { System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "..."); Socket server = serverSocket.accept(); System.out.println("Now connected to " + server.getRemoteSocketAddress() + " "+ new Date().toString()); DataInputStream in = new DataInputStream(server.getInputStream()); System.out.println(in.readUTF()); DataOutputStream out = new DataOutputStream(server.getOutputStream()); out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!"); server.close(); }catch(SocketTimeoutException s) { System.out.println("Socket timed out!"); break; }catch(IOException e) { e.printStackTrace(); break; } } } public static void main(String [] args) { port=9000; try { Thread t = new SocketLocalServer1(port); t.start(); }catch(IOException e) { e.printStackTrace(); } } }