Problemas con un servidor

Estoy construyendo un servidor que limite el nº de conexiones activas simultaneas, el código es el siguiente:
while(true){
if(numConexiones < NUMERO_MAXIMO)
s = socket.accept();
...
En el cliente uso el siguiente codigo:
try{
InetAddress addr =
InetAddress.getByName("198.155.240.93");
socket = new Socket(addr,puerto);
entrada = new BufferedReader(new
InputStreamReader(
socket.getInputStream()));
salida = new PrintWriter(new
BufferedWriter(new OutputStreamWriter
(socket.getOutputStream())),true);
...
}catch(Exception e){
System.out.println("no estoy
conectado");
}
Mi problema es que cuando lanzo el cliente NUMERO_MAXIMO + 1 no se lanza ninguna excepción y pasa a ejecutar el código del try cuando debería ejecutar el código del catch.

1 respuesta

Respuesta
1
Deberías asegurarte que efectivamente la variable numConexiones se incrementa y controla adecuadamente en cada conexión que se realiza.
Puedes, una vez lanzado NUMERO_MAXIMO clientes, comprobar con un "netstat -a" que tienes NUMERO_MAXIMO conexiones establecidas y que el puerto de escucha no está en estado LISTENING. Si es así, es que por alguna razón en la lógica de tu aplicación se sigue llamando al accept.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas