2
I’m doing a job at the college and I took some information from the Internet, the professor asked a client to submit 2 values and a basic operation, the server should take this and return the total. It turns out that the client only takes the variables itself, does not take the total that comes from the server and nor the opr
which is the symbol of the operation.
public class Servidor2 {
public static void main(String[] args) throws IOException {
int num1, num2, total = 0;
int operacao = 0;
char opr = 0;
//Cria um socket na porta 12342
ServerSocket servidor = new ServerSocket(12342);
System.out.println("Porta 12342 aberta!");
// Aguarda alguém se conectar. A execução do servidor
// fica bloqueada na chamada do método accept da classe
// ServerSocket. Quando alguém se conectar ao servidor, o
// método desbloqueia e retorna com um objeto da classe
// Socket, que é uma porta da comunicação.
System.out.print("Aguardando conexão do cliente...");
Socket cliente = servidor.accept();
System.out.println("Nova conexao com o cliente " + cliente.getInetAddress().getHostAddress());
ObjectOutputStream resultado = new ObjectOutputStream(cliente.getOutputStream());
ObjectInputStream dados = new ObjectInputStream(cliente.getInputStream());
num1 = dados.readInt();
num2 = dados.readInt();
operacao = dados.readInt();
if (operacao == 1) {
opr = '+';
total = (num1 + num2);
}
if (operacao == 2) {
opr = '-';
total = (num1 - num2);
}
if (operacao == 3) {
opr = 'x';
total = (num1 * num2);
}
if (operacao == 4) {
opr = '/';
total = (num1 / num2);
} else {
System.out.printf("Você digitou uma operação inválida.");
}
resultado.writeInt(total);
resultado.writeChar(opr);
resultado.flush();
resultado.flush();
servidor.close();
}
}
public class Cliente2 {
public static void main(String[] args) throws UnknownHostException, IOException {
int num1 = 0;
int num2 = 0;
int operacao = 0;
char opr;
Socket cliente = new Socket("127.0.0.1", 12342);
System.out.println("O cliente conectou ao servidor");
ObjectInputStream resultado = new ObjectInputStream(cliente.getInputStream());
ObjectOutputStream dados = new ObjectOutputStream(cliente.getOutputStream());
num1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o primeiro número"));
num2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o segundo número"));
operacao = Integer.parseInt(JOptionPane.showInputDialog("Qual operação desejada? 1= +, 2= -,3= X,4= / "));
dados.writeInt(operacao);
dados.writeDouble(num1);
dados.writeDouble(num2);
dados.flush();
int total = resultado.readInt();
opr = resultado.readChar();
System.out.println("Total de " + num1 + opr + num2 + " = " + total);
cliente.close();
}
}
See the [tour], if you think the main objective of this question has been achieved you can accept the answer. You can also vote for everything on the site you find useful, not just things related to your posts.
– mateusalxd