Server.java

 import java.util.*;

public class Server {

private int         port; private Vector      socketVec; private ServerDaemon daemon;

/* Constructor Server. */   public Server(String[] args) {

if (args.length > 0) { try { port = java.lang.Integer.parseInt(args[0]);

} catch (NumberFormatException e) { System.out.println("ERROR: "                   + args[0] + " : " + e.getMessage); System.exit(0); }       } else { port = 2015; // default value }

socketVec = new Vector(50); }

// Simply starts the server daemon private void startServer { try { daemon = new ServerDaemon(this, port); } catch (Exception e) { e.printStackTrace; }   }

// add a connection to the vector public void addMySocket(MyServerSocket s) { socketVec.addElement(s); }

// remove a connection from vector public synchronized void loggedOf(MyServerSocket s) { socketVec.removeElement(s); }

// method handleMessage public synchronized void handleMessage(String line,                                          MyServerSocket s) {

if (line.toLowerCase.equals("wwhhoo")) { MyServerSocket oth; for (int i = 0; i < socketVec.size; i++) { oth = (MyServerSocket) socketVec.elementAt(i);

if (s != oth) s.sendMessage(oth.getIP); }

} else { broadCast(line); }   }

private synchronized void broadCast(String message) { MyServerSocket s;       for (int i = 0; i < socketVec.size; i++) { s = (MyServerSocket) socketVec.elementAt(i); s.sendMessage(message); }   }

private void cleaner { long sleepTime = 1000L // milliseconds * 60 // seconds * 10; // minutes while (true) { try { Thread.sleep(sleepTime);

long compTime = System.currentTimeMillis - sleepTime;

for (int i = 0; i < socketVec.size;  ) { MyServerSocket s;                   s = (MyServerSocket) socketVec.elementAt(i);

if ( !s.isInactive(compTime)) { i++; }               }

} catch (Throwable e) {} } // end while }

public static void main(String[] args) { Server serv = new Server(args); serv.startServer; serv.cleaner; } } 