“Moçada, boa tarde”
Estou fazendo uma aplicação simples sobre sockets em java. Crie a classe de servidor. Instancio ela, blz, o servidor inicia. É uma aplicação de soma, onde o cliente requisita a soma enviando valores para o servidor, e este, faz a soma e devolve o resultado para o cliente. O servidor iniciado blz. Agora quando inicio a requisição do cliente, o servidor não reconhece nem a conexão entre ambos. Não aparece a mensagem na console do netbeans : Exemplo: Cliente ***** online.
SE alguem souber oq estou fazendo de errado, por gentileza, me ajudem por favor.
Seguem os códigos:
//Classe TipoComando.Java
public enum TipoComando {
SOMA2,
SAIR
}
//Classe Comando.Java
public class Comando implements Serializable{
private TipoComando tipo;
private double[] parametros;
public Comando(TipoComando tipo, double[] params){
this.tipo = tipo;
if(params != null)
this.parametros = params;
}
public double[] getParametros(){
return this.parametros;
}
public void setParametros(double[] params){
this.parametros = params;
}
public TipoComando getTipo(){
return this.tipo;
}
public void setTipo(TipoComando tipo){
this.tipo = tipo;
}
}
//Classe Servidor.Java
public class Servidor {
private ServerSocket server;
private ObjectOutputStream saida;
private ObjectInputStream entrada;
public Servidor(int porta) throws IOException{
this.server = new ServerSocket(porta);
System.out.println("Servidor Online na porta " + porta);
}
public Comando receberComando() throws IOException, ClassNotFoundException{
return (Comando) entrada.readObject();
}
public void enviarComando(Comando cmd) throws IOException{
saida.writeObject(cmd);
}
public void soma2(Comando c) throws IOException{
double[] parametros = c.getParametros();
double v1 = parametros[0];
double v2 = parametros[1];
double soma = v1 + v2;
double[] resultado = new double[1];
resultado[0] = soma;
Comando cmd = new Comando(TipoComando.SOMA2, resultado);
this.enviarComando(cmd);
}
public void sair() throws IOException{
Comando cmd = new Comando(TipoComando.SAIR, null);
this.enviarComando(cmd);
}
public void inicializarServidor() throws IOException, ClassNotFoundException{
while(true)
{
Socket cliente = server.accept();
this.entrada = new ObjectInputStream(cliente.getInputStream());
this.saida = new ObjectOutputStream(cliente.getOutputStream());
System.out.println("Nova Conexão: " + cliente.getInetAddress());
Comando c = null;
mainLoop:
while((c = this.receberComando()) != null)
{
switch(c.getTipo())
{
case SOMA2:
{
this.soma2(c);
}
case SAIR:
{
this.sair();
break mainLoop;
}
}
}
entrada.close();
saida.close();
cliente.close();
}
}
public static Servidor criarServidor(int porta) throws IOException{
return new Servidor(porta);
}
public static void main(String[] args) throws IOException, ClassNotFoundException{
Servidor.criarServidor(25000).inicializarServidor();
}
}
//Classe Cliente.Java
public class Cliente {
private Socket socketCliente;
private ObjectInputStream entrada;
private ObjectOutputStream saida;
public Cliente(String host, int porta) throws UnknownHostException, IOException{
this.socketCliente = new Socket(host, porta);
this.entrada = new ObjectInputStream(socketCliente.getInputStream());
this.saida = new ObjectOutputStream(socketCliente.getOutputStream());
}
public Comando receberComando() throws IOException, ClassNotFoundException{
return (Comando) entrada.readObject();
}
public void enviarComando(Comando c) throws IOException{
this.saida.writeObject(c);
}
}
//Classe Main.Java
public class Main {
public static void main(String[] args) throws IOException, ClassNotFoundException{
Cliente cliente = new Cliente("127.0.0.1", 25000);
double[] valores = {1,3};
Comando cmd = new Comando(TipoComando.SOMA2, valores);
cliente.enviarComando(cmd);
Comando rcmd = cliente.receberComando();
System.out.println(rcmd.getTipo());
System.out.println(rcmd.getParametros()[0]);
cmd = new Comando(TipoComando.SAIR, null);
cliente.enviarComando(cmd);
rcmd = cliente.receberComando();
System.out.println(rcmd.getTipo());
}
}
Lembrando que primeiro inicia-se a Instancia de Servidor, depois de de Cliente(Main.Java)
Desde já, agradeco! XD