Client is not increasing

0

I'm doing a distributed system with 2 clients. Being that you are asking the same values for both, and not putting the other wait.

import java.awt.HeadlessException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import javax.swing.JOptionPane;


public class Cliente {
    public static void main(String[] args) throws HeadlessException, NumberFormatException, RemoteException {

        Interface controlador = null;


// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio: Escolha de Servidor ------------ - - - - - - - - - -  -  -  -  -  -   - 

// Ao abrir o programa, mostra a tela de escolha de servidor (até então, a variável escolha é 0)
//Se 1, se conecta ao serv1. Se 2, se conecta ao serv2. Se 3, sai do programa (If's e else if's abaixo)
//Caso for digitado um numero diferente de 1, 2 ou 3, mostra o que está no ELSE
//Repara que tem um try/catch. Serve para, se o usuario digitar algo diferente de um NUMERO (Inteiro, neste caso) ele caia pro CATCH (forçando a digitar um numero)
//Fora isso tem um laço "do while" que fica rodando pra sempre, forçando o usuário a digitar 1, 2 ou 3 (3 na verdade não quebra o laço, mas como é um "exit", fecha o programa)

        int opcao = 0;

        do {

            try {

                opcao = Integer.parseInt(JOptionPane.showInputDialog(null, "  1 - Servidor 1.\n\n  2 - Servidor 2.\n\n  3 - Sair da aplicação.", "Escolha de Servidor", JOptionPane.PLAIN_MESSAGE));
                System.out.println(opcao);


                if (opcao == 1) {                   
                    controlador = (Interface) Naming.lookup("//localhost/rmi");// Rmiregistry (Servidor1)
                    JOptionPane.showMessageDialog(null, "Conectado ao servidor 1.");
                } else if(opcao == 2) {
                    controlador = (Interface) Naming.lookup("//192.168.1.131/rmi");// Rmiregistry (Servidor2)
                    JOptionPane.showMessageDialog(null, "Conectado ao servidor 2.");
                } else if(opcao == 3) {
                    System.exit(2);
                } else {
                    JOptionPane.showMessageDialog(null, "Por favor, digite apenas 1 ou 2", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                }

            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Por favor, entre apenas com números ( 1, 2 e 3).", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                //System.err.println("Problemas de localização! " + e);
                e.printStackTrace();
                //System.exit(2);
            } 

        }   while(opcao < 1 || opcao > 2);

// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim da  Escolha de Servidor ------------ - - - - - - - - - -  -  -  -  -  -   - 




// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio do Cliente 1  ------------ - - - - - - - - - -  -  -  -  -  -   -



        if(controlador.clientRole() == 0){
            controlador.incrementarCliente();

            try {

                String comp = JOptionPane.showInputDialog(null, "Digite o valor do comprimento do paralelepípedo: ", "CLIENTE 1", JOptionPane.PLAIN_MESSAGE);
                controlador.setComprimento (Float.parseFloat(comp));
                JOptionPane.showMessageDialog(null, "Valor do Comprimento: "+controlador.getComprimento());

                String altura = JOptionPane.showInputDialog(null, "Digite o valor da altura do paralelepípedo: ", "CLIENTE 1", JOptionPane.PLAIN_MESSAGE);
                controlador.setAltura(Float.parseFloat(altura));
                JOptionPane.showMessageDialog(null, "Valor da altura: "+controlador.getAltura());               

                //Cliente 1 informa o valor pago por horas trabalhadas e a quantidade de Horas Trabalhadas. 

                //o servidor retornará  o valor que o cliente receberá no dia para os clientes.



                while(true) {                               
                    if(controlador.getLargura() == -9999) {
                        System.out.println("Aguardando parametros do segundo cliente.");
                        JOptionPane.showMessageDialog(null, "Aguardando parametros do segundo cliente.", "CLIENTE 1", JOptionPane.INFORMATION_MESSAGE);
                    } else {
                        break;
                    }
                }           

                JOptionPane.showMessageDialog(null," Cliente 1 Informou o valor " +controlador.getComprimento()+ " de comprimento. O valor de altura foi  "+controlador.getAltura()+ " , o valor do volume será: "+controlador.getAltura() * controlador.getComprimento() * controlador.getLargura(), "CLIENTE 1" , JOptionPane.INFORMATION_MESSAGE);

            } catch (RemoteException re) {
                System.err.println("Problemas com a chamada remota! " + re);
                re.printStackTrace();
                System.exit(3);
            }
// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim do Cliente 1 ------------ - - - - - - - - - -  -  -  -  -  -   -



// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio do Cliente 2  ------------ - - - - - - - - - -  -  -  -  -  -   -



    try {


        while(true){                        
            if (controlador.getAltura() == 0){
                System.out.println("Aguardando parametros do primeiro cliente.");
                JOptionPane.showMessageDialog(null, "Aguardando parametros do primeiro cliente.", "CLIENTE 2", JOptionPane.INFORMATION_MESSAGE);
            } else {
                break;
            }
        }

        do {
            try {

                String largura = JOptionPane.showInputDialog(null, "Digite o valor da largura do paralelepípedo: ", "CLIENTE 2", JOptionPane.PLAIN_MESSAGE);
                controlador.setLargura(Float.parseFloat(largura));
                JOptionPane.showMessageDialog(null, "Valor da largura: " +controlador.getLargura());    

                //if (+controlador.getHt() <controlador.getHn() )  {

                    //JOptionPane.showMessageDialog(null, "Número de horas trabalhadas menor que horas necessárias");
                    //break;}


                JOptionPane.showMessageDialog(null,"O Cliente 2 informou o valor " +controlador.getLargura()+ " de altura e o valor do volume do paralelepipedo será: " +controlador.getAltura() * controlador.getComprimento() * controlador.getLargura(), "CLIENTE 2" , JOptionPane.INFORMATION_MESSAGE);
                controlador.resetar();
                break;

            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Digite um valor válido! ", "CLIENTE 2", JOptionPane.ERROR_MESSAGE);
            }
        } while(true);

    } catch (RemoteException re) {
        System.err.println("Problemas com a chamada remota! " + re);
        re.printStackTrace();
        System.exit(3);

//------------ - - - - - - - - - -  -  -  -  -  -   - Fim: Cliente (2) ------------ - - - - - - - - - -  -  -  -  -  -   -
    }
        }}}


// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim: Cliente (2) --------
    
asked by anonymous 06.06.2018 / 03:46

0 answers