/*
 *        Names: Sheila Marie George, Mang-Fai Ma, Jun Shen
 *               Yu Su, Xiyou Wang, John Woods,
 *               Nelson Zhan, Zhengrong Zuo
 *
 *       Course: IS 2470, Interactive System Design
 *
 *      Project: Course Scheduler (Group 2)
 *
 *          Due: June 18, 1998
 *
 */

/**
 * This is a server class for the Course Scheduler
 *
 * @version 1.0 18 June 1998
 */

import java.io.*;
import java.net.*;

// A class of multi-threaded server for the Course Scheduler
class ThreadedCourseHandler extends Thread
{  
   Socket incoming;
    int counter;
   
   // Constructor
   ThreadedCourseHandler(Socket i, int c) 
   { incoming = i; counter = c; }

   public void run()
   {  
      try 
       {        
       PrintWriter out = new PrintWriter(incoming.getOutputStream(),true);
       BufferedReader in = new BufferedReader(new InputStreamReader
                           (incoming.getInputStream()));
         boolean done = false;
          while (!done)
         { 
         // Get the request string from the Course Scheduler
         String request = in.readLine();

         URL coursehomepage = new URL(request);
         DataInputStream inputstr = new DataInputStream(coursehomepage.openStream());
         String line;

         while ((line = inputstr.readLine()) != null)
         {
            out.println(line);
         }
         out.println("+++");
         }
         
         incoming.close();         
      }
      catch (Exception e) 
      {  System.out.println(e);
      } 
   } 
}

// A class of Course Server
class ThreadedCourseServer
{  public static void main(String[] args ) 
   {  int i = 1;
      try 
      {  ServerSocket s = new ServerSocket(7147);
         
         for (;;)
         {  Socket incoming = s.accept( );
            System.out.println("Spawning " + i);
            
            new ThreadedCourseHandler(incoming, i).start();
            i++;
         }   
      }
      catch (Exception e) 
      {  System.out.println(e);
      } 
   } 
 
}