Bom dia,
Estou com esse codigo de um servidor socket em java porem ele conecta e nao resolve nada, fica numa conexão eterna, ja bati cabeça e nada, estou querendo fazer o servidor responder cada vez que entro nele com +1 na variavel mas ele fica preso no conectado infinitamente.
package servidor;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor {
//servidor de conexões
private ServerSocket serverSocket ;
void criarServidor(int porta) throws IOException{
serverSocket = new ServerSocket(porta);
}
Socket esperarConexao() throws IOException{
Socket socket = serverSocket.accept();
return socket;
}
void tratarConexao(Socket socket) throws IOException {
try{
ObjectInputStream input = new ObjectInputStream( socket.getInputStream());
ObjectOutputStream output = new ObjectOutputStream(socket.getOutputStream());
int a=0;
if(a==0){
int msg = 0;
msg +=1;
System.out.println("Valor a enviar:" + msg);
output.writeInt(msg);
output.flush();
input.close();
output.close();
a++;
}else{
int msg = input.readInt();
System.out.println("Valor recebido:" + msg);
msg +=1;
System.out.println("Valor a enviar:" + msg);
output.writeInt(msg);
output.flush();
input.close();
output.close();}
}
catch(IOException e){
System.out.println("Problema!!");
}finally{
fechaSocket(socket);
}
}
private void fechaSocket(Socket socket) throws IOException {
socket.close();
}
public static void main(String[] args) {
try{
Servidor server = new Servidor();
System.out.println("Conectando...");
server.criarServidor(5001);
while(true){
Socket socket = server.esperarConexao();
System.out.println("conectado!");
server.tratarConexao(socket);
System.out.println("finalizando conexao!");
}
}
catch(IOException e){
System.out.println("erro estranho");
}
}
}