Message Server

public MessageServer() {
   System.out.println("Message Server starting ...");
   Config c = null;
 
   try {
      c = new Config("config.xml");
   } catch (Exception e) {
      System.out.println("MessageServer:MessageServer:1:" + e.toString());
   }

   //set port number
   PORTNUM = c.getPort();
   System.out.println("Port is " + PORTNUM);

   //set logging switch
   loggingSw = c.getLog();
   System.out.println("Log switch is " + loggingSw);

   //build queues
   String[] queues = c.getQueues();
   for (int i = 0; i < queues.length; i++) {
      queueContainer.put(queues[i], new Hashtable());
      System.out.println("Queue " + queues[i] + " has been created");
   }

   try {
      //bind to server socket
      serverSocket = new ServerSocket(PORTNUM);
      System.out.println("MomServer: Message Server is running");
   } catch (IOException e) {
      System.out.println("MessageServer:MessageServer:2:could not create server socket");
      System.exit(1);
   }
}


public void run() {
   Socket clientSocket = null;
 
   while (true) {
      //get out when not bound to server socket
      if (serverSocket == null) return;
   
         try {
            //listen to sever port. Create socket to client
            clientSocket = serverSocket.accept();

            //create an instance of the Queue Manager to process request from client
            QueueManager qm = new QueueManager(queueContainer, clientSocket, loggingSw);
            qm.start();
     
         } catch (IOException e) {
            System.out.println("MessageServer:run:1:client socket error");
            System.exit(1);
         }
      }
   }   
}