public void run()
  {
    MensajeServidor("Procesando conexion");
    try
    {
      //Entrada es el input del cliente, es decir la request en su respectivo formato.
      BufferedReader entrada = new BufferedReader(new InputStreamReader(cliente.getInputStream()));
      //Salida es para enviar la response.
      salida = new PrintWriter(new OutputStreamWriter(cliente.getOutputStream(), "8859_1"), true);
      

      String cadena="" ;
      // Con i se puede reconocer la primera linea, que indica el metodo y version del protocolo
      int i = 0;
      do
      {
        //Se leen las lineas y se imprimen en orden, para ver que esta haciendo cada thread.
        cadena = entrada.readLine();
        if (cadena != null) {
          MensajeServidor("--" + cadena);
        
        // Si es la primera linea se reconoce que metodo es y segun esto se maneja la peticion.
        if (i == 0)
        {
          i++;
          
          StringTokenizer st = new StringTokenizer(cadena);
          String metodo=st.nextToken();
          if ((st.countTokens() >= 2) && (metodo.equals("GET"))) {
            //Si es get se retorna el archivo indicado en la linea principal.
            RetornarArchivo(st.nextToken());
          } 
          else if((st.countTokens() >= 2) && (metodo.equals("POST"))){
              //Si es post se le pasa la entrada y la direccion.
              ManejoPost(entrada,st.nextToken());
          }
          //Si el archivo no existe se devuelve not found en la salida al cliente (cliente.getOutputStream()).
          else {
            salida.println("HTTP/1.1 400 Not Found");
          }
        }
      }
        
      } while (cadena != null && cadena.length() != 0);
    }
    catch (IOException| NullPointerException e)
    {
      //En el caso que no se pueda establecer conexion con la salida, se retorna not found, en teoria debiera ser 501.
      salida.println("HTTP/1.1 400 Not Found");
      salida.close();
    }
    
    //Si todo va correctamente, se termina la peticion y se finaliza.
    MensajeServidor("Peticion Finalizada");
    salida.close();
  }