コード例 #1
0
ファイル: Worker.java プロジェクト: Zenadix/GTCA
  @Override
  /** Hace el trabajo pesado en segundo plano */
  protected String doInBackground() {
    try {
      // Lector y Escritor
      publish("Leyendo archivos...");
      Proceso proc = new Proceso(this, rutaDespacho, rutaImpresos, rutaData, bd);
      Salida salida = new Salida(this, rutaTramaAuto, rutaTramaMan);

      // Leer todos los datos
      publish("Analizando datos...");
      List<Poliza> listaPolizas = proc.procesarPolizas();

      // Escribir también
      publish("Construyendo tramas...");
      salida.generarDosTramas(listaPolizas);

      fin = salida.getResultado();
      publish(fin);
      return fin;

    } catch (Throwable e) {
      e.printStackTrace();
      error = true;
      if (e.getMessage() == null) fin = "Error. " + e + ". Contáctese con el desarrollador.";
      else fin = e.getMessage();
      publish(fin);
      return fin;
    }
  }
コード例 #2
0
  @Override
  public void run() {
    respuestas = new ArrayList<String>();
    System.out.println("Connection successful");
    System.out.println("Waiting .....");
    PrintWriter out = null;
    BufferedReader in = null;
    try {
      out = new PrintWriter(clientSocket.getOutputStream(), true);
      in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

      String inputLine;

      while ((inputLine = in.readLine()) != null) {
        System.out.println("Input : " + inputLine);
        String[] a = inputLine.split(" ");
        String tipo = a[0];
        if (tipo.equalsIgnoreCase("server")) {
          String nombre = a[1];
          String direccion = a[2];
          int puerto = Integer.parseInt(a[3]);
          Proceso p = new Proceso(nombre, direccion, puerto);
          directorio.add(p);
        } else if (tipo.equalsIgnoreCase("client")) {
          List<Thread> lt = new ArrayList<Thread>();
          lo = new ArrayList<Operacion>();
          for (int i = 1; i < a.length; i++) {
            String nombre = a[i];

            if (nombre.equalsIgnoreCase("historial")) {

              List<Operacion> op = new ArrayList<Operacion>();
              op = leer();
              String s = "HISTORIAL::::::";

              for (Operacion o : op) {

                s += "------- Operacion: " + o.getOperacion() + " Respuesta: " + o.getRespuesta();
              }

              out.println(s);
              continue;
            } else {
              i++;
              String operacion = a[i];
              for (Proceso p : directorio) {
                if (p.getNombre().equalsIgnoreCase(nombre)) {

                  Operacion o = new Operacion(p.getDireccion(), p.getPuerto(), operacion);
                  lo.add(o);
                  Thread t1 = new Thread(o);
                  t1.start();
                  lt.add(t1);
                  break;
                }
              }
              serializar();
            }
          }
          int i = 0;
          for (Thread t : lt) {
            t.join();
            // out.println(((Operacion)((Object)(t.getContextClassLoader()))).getRespuesta());

            out.println(lo.get(i).getRespuesta());
            i++;
          }
        }

        if (inputLine.equals("Bye.")) break;
      }
    } catch (IOException | InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } finally {
      try {
        out.close();

        in.close();
        clientSocket.close();
        clientSocket.close();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }