El siguiente codigo podria funcionar muy bien pero no se puede utilizar is.available(). Además este metodo proceso() esta ejecutandose dentro de un hilo.
Código
public void proceso(){ try { int d=is.available(); if(d!=0){ byte[] bytes=new byte[d]; int offset=0; while(offset<bytes.length){ int value=is.read(bytes,offset, d); if(value==-1)break; offset+=value; } int i=0; while(i<bytes.length){ i++; } } } }
Y el siguiente codigo que por cierto es ineficiente igual puede bloquearse en la linea is.read() segun lo que probe.
Código
public void proceso1(){ try { int d=is.read(); while(d!=-1){ d=is.read(); } ex.printStackTrace(); } } Una forma mas eficiente de esto para leer que hize fue leer con el metodo read(byte[],position,length). Pero aún se bloquea.
Eh notado que si el procesamiento es mas lento se bloquee porque quizas no esten los datos rapidamente disponibles. En cambio si ya estan entonces no se bloquearia en la linea de is.read(). Solo es una observación. Nose como hacen realmente las aplicaciones de este tipo.
Espero que me puedan ayudar a buscar una forma para evitar este bloqueo.
Desde ya muchas gracias.
Saludos.[/color]