Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2013, 14:19
danielinkmetal
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 2 meses
Puntos: 0
Problema con socket en aplicacion cliente

Buenas tardes ya he hecho algunas aplicaciones con sockets en java, y no he tenido mayor problema, hoy en dia tengo un problema de desconexion de mi socket, esto obvimente sucede al saltarse una excepcion de desconexion IO debido al timeout en el metodo read, obviamente luego manejo la excepcion y en mi lazo reconecto el socket pero esto me sucede muy seguido y no logro una comunicacion fluida, ayudenme a encontrar la razon
Incluyo el codigo de el hilo principal

@Override
public void run (){
initServer();
}

private void initServer() {
char byteBuffer;
while(true){
try {
System.out.println(address+" "+port);
conexion = new Socket( address, port );
refIco.setIcon(GUI.redOk);
conexion.setKeepAlive(true);
conexion.setSoTimeout(500);
System.out.println( "Conectado a: " + conexion.getInetAddress().getHostName() );
// establecer flujo de salida para los objetos
salida = new DataOutputStream( conexion.getOutputStream() );
salida.flush(); // vaciar búfer de salida para enviar información de encabezado
// establecer flujo de entrada para los objetos
entrada = new DataInputStream( conexion.getInputStream() );
while(true){
//System.out.println("leyendo"+entrada.available());
byteBuffer = (char) entrada.readByte();
//System.out.println("leido : "+(int)byteBuffer);
if(byteBuffer == 13){
if(check){// control de caracter inicial
System.out.println(buffer);
IdentificarCmd(); // se procesa la trama recibida

check = false;

//cerrarConexion();
//break;

}
}
else if (byteBuffer == 58){
buffer.delete(0, buffer.length());
buffer.append(byteBuffer);
check = true;
}
else {
buffer.append(byteBuffer);
}

}

} catch (EOFException ex) {
System.err.println("Se interrumpio la conexion");
refIco.setIcon(GUI.redBad);

} catch (IOException ex) {
System.err.println("timeout al leer inputStream...");
//playAudio();
refIco.setIcon(GUI.redBad);
//Logger.getLogger(ServerPort.class.getName()).log(L evel.SEVERE, null, ex);


} finally {
//cerrarConexion();
}
}
}


espero me puedan ayudar lo mas rapido posible

Última edición por danielinkmetal; 21/02/2013 a las 14:43