/*
 * Created on Nov 9, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package servidorMulti;
import java.net.*;
import java.io.*;

/**
 * @author ceron
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

public class Servidor {

	static final int DEFAULT_PORT = 3030;


	public static void main(String[] args) {
		
		System.out.println("Iniciando Servidor ...");
		int port;                 // Port on which server listens.
	    ServerSocket listener;    // Servidor, aguarda conexoes 
	    Socket socket_client;     // Cliente, conecta no servidor
	    int i=0;
	    
	    if (args.length == 0)
	        port = DEFAULT_PORT;
	     else { 
	        try {
	        	//tenta pegar parametro da linha
	            port = Integer.parseInt(args[0]);
	         }
	         catch (NumberFormatException e) {
	            System.out.println(args[0] + "Porta Invalida.");
	            return;
	         }
	      }
	      try {
	        //socket servidor, aguarda conexoes
	      	listener = new ServerSocket(port);
	      }
	      catch (IOException e) {
	         System.out.println("Can't start server.");
	         System.out.println(e.toString());
	         return;
	      }
	       System.out.println("Servidor Startado na porta " + port);
	  
	       // Servidor escutando, aguardando conexoes (daemom)
	        try {
	         
	         while (true) {
	            socket_client = listener.accept();
	            new Cliente(socket_client).start();
	         }
	      }
	      catch (Exception e) {
	         System.out.println("Servidor caiu!");
	         System.out.println(e.toString());
	         System.exit(1);
	      }	      	      
	}// end main

}// end class servidor 

