Fórum Comunicação cliente/servidor #462580

29/11/2013

0

Estou tentando fazer um programa (que calcule a idade e informe se a pessoa é maior ou menor de idade) se comunicando com o servidor. Tenho esse código que pede a data de nascimento, calcula a idade e diz se a pessoa é maior ou menor de idade, mas não estou conseguindo fazer a comunicação com o servidor. Alguém poderia me dar uma ajudinha?

Cliente

import static javax.swing.JOptionPane.*;
import java.net.*;
import java.io.*;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Cliente {

public static void main(String[] args) {


//pega os dados

Calendar cal = GregorianCalendar.getInstance();

int anoAtual = cal.get(Calendar.YEAR);
int diaNasc = 0;
int mesNasc = 0;
int anoNasc = 0;

String amostrar = "";

boolean verificar = true;
boolean verificar2 = true;
boolean verificar3 = true;

while(verificar){
diaNasc = Integer.parseInt(showInputDialog("Digite o dia"));
if (diaNasc<1 || diaNasc>31){
showMessageDialog(null,"Entrada inválida, tente novamente");
verificar = true;

}

else{
verificar = false;
}

}

while(verificar2 == true){
mesNasc = Integer.parseInt(showInputDialog("Digite o mes"));
if (mesNasc<1 || mesNasc>12){
showMessageDialog(null,"Entrada invalida, tente novamente");
verificar2 = true;
}
else{
verificar2 = false;
}
}

while(verificar3 == true){
anoNasc = Integer.parseInt(showInputDialog("Digite o ano"));
if (anoNasc<1 || anoNasc>anoAtual){
showMessageDialog(null,"Entrada invalida, tente novamente");
verificar3 = true;
}
else{
verificar3 = false;
}
}


//se conecta com o servidor
try{

Socket conectar = new Socket("127.0.0.1",5000);

//manda dados para o servidor
PrintWriter mandar = new PrintWriter(conectar.getOutputStream());
mandar.println(diaNasc);
mandar.println(mesNasc);
mandar.println(anoNasc);
mandar.flush();

//recebe os dados do servidor
InputStreamReader receber = new InputStreamReader(conectar.getInputStream());
BufferedReader ler = new BufferedReader(receber);
amostrar+=ler.readLine() +"\n";
amostrar+=ler.readLine();



showMessageDialog(null,amostrar,"",PLAIN_MESSAGE);

}
catch(Exception e){

System.out.println(e);

}

}

}


Servidor


import java.io.*;
import java.net.*;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Servidor {

public static void main(String[] args) {

//calendario

Calendar cal = GregorianCalendar.getInstance();
int anoAtual = cal.get(Calendar.YEAR);
int mesAtual = cal.get(Calendar.MONTH);
int diaAtual = cal.get (Calendar.DAY_OF_MONTH);

String texto = "";


//cria o servidor
try{

ServerSocket servidor = new ServerSocket(5000);

while(true){

Socket conectar = servidor.accept();//espera o cliente se conectar

InputStreamReader pegarvalores = new InputStreamReader(conectar.getInputStream());
BufferedReader ler = new BufferedReader(pegarvalores);

int diaNasc = Integer.parseInt(ler.readLine().toString());
int mesNasc = Integer.parseInt(ler.readLine().toString());
int anoNasc = Integer.parseInt(ler.readLine().toString());

//lógica
int idade = (anoAtual - anoNasc);
if((mesAtual<mesNasc) && (diaAtual<diaNasc))
idade--;
if(idade<18){
texto = "voce tem: " + idade + " anos.\nMenor de idade";
}
else{
texto = "voce tem: " + idade + " anos.\nMaior de idade";
}

//manda os dados para o cliente

PrintWriter mandar = new PrintWriter(conectar.getOutputStream());
mandar.println(texto);
mandar.flush();



}

}
catch(Exception e){

System.out.println("Erro no servidor: " + e);

}

}

}
Brenda Lee

Brenda Lee

Responder

Posts

05/12/2013

Eduardo Pessoa

alguem poderia ajudar o nosso amigo?
Responder

Gostei + 0

09/12/2013

Brenda Lee

O cliente não está se comunicando com o servidor. Alguém poderia me dar uma ajudinha, por favor?
Responder

Gostei + 0

09/12/2013

Eduardo Pessoa

quais procedimentos vc fez e não deu certo?
Responder

Gostei + 0

16/12/2013

Eduardo Pessoa

o que vc fez?
Responder

Gostei + 0

09/01/2014

Paulo Pontes

Bom dia BRENDALEE, entrei no fórum hoje e vi sua dúvida.
Testei o código que você fez e funcionou corretamente, dê um start a aplicação Servidor e depois dê start na aplicação Cliente.
Senão estiver funcionando é porque a aplicação Servidor está fora.

Espero ter ajudado.
Segue JOptionPane de Retorno.
[img]http://arquivo.devmedia.com.br/forum/imagem/355178-20140109-093251.png[/img]
Responder

Gostei + 0

09/01/2014

Eduardo Pessoa

era somente restartar?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar