// VECR Interactive IO Server import java.net.*; import java.io.*; import java.util.*; public class IOserver extends Thread { private int port; private IOserver( int port) { this.port = port; } public void run() { ServerSocket server = null; Socket client = null; final int backlog = 32; String name; Date now; try { server = new ServerSocket( port, backlog, InetAddress.getByName( "localhost")); } catch( Exception e) { e.printStackTrace( System.out); System.out.flush(); return; } now = new Date(); System.out.println( now + ": accepting connections on port " + port); System.out.flush(); while(true) { try { client = server.accept(); name = client.getInetAddress().toString() + ":" + client.getPort(); now = new Date(); synchronized( System.out) { System.out.println( now + ": connect from " + name); System.out.flush(); } client.setSoTimeout( 1800000); // 30 minute timeout on read() IOclient C = new IOclient( client, name); C.start(); } catch( IOException e) { synchronized( System.out) { e.printStackTrace( System.out); System.out.flush(); } } System.gc(); // run garbage collector } } public static void main (String args[]) throws Exception { IOserver s = new IOserver( 7); s.start(); } }