www.pudn.com > jnp-src.rar > GenericServer.java


/*
 * Java Network Programming, Second Edition
 * Merlin Hughes, Michael Shoffner, Derek Hamner
 * Manning Publications Company; ISBN 188477749X
 *
 * http://nitric.com/jnp/
 *
 * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner;
 * all rights reserved; see license.txt for details.
 */

import java.io.*; 
import java.net.*; 
import java.util.Hashtable; 
 
public class GenericServer extends Thread { 
  protected ServerSocket server; 
  protected Hashtable routes; 
   
  public GenericServer (int port) throws IOException { 
    super ("GenericServer"); 
    server = new ServerSocket (port); 
    routes = new Hashtable (); 
  } 
 
  public void run () { 
    try { 
      while (!Thread.interrupted ()) { 
        Socket socket = server.accept (); 
        GenericHandler handler = new GenericHandler 
          (routes, socket.getInputStream (), socket.getOutputStream ()); 
        handler.start (); 
      } 
    } catch (IOException ex) { 
      ex.printStackTrace (); 
    } 
  } 
 
  public static void main (String args[]) throws IOException { 
    if (args.length != 1) 
      throw new IllegalArgumentException ("Syntax: GenericServer "); 
    GenericServer server = new GenericServer (Integer.parseInt (args[0])); 
    server.start (); 
  } 
}