Olá,
Tenho o seguinte código:
[code]DataInputStream entrada = new DataInputStream(socketCliente.getInputStream());
int tam = entrada.readInt();
byte[] b = new byte[tam];
entrada.read(b, 0, tam);
return new String(this.diversasUtil.deCompressByte(b));[/code]
Este código é onde faço a leitura dos bytes vindos do socket e retorno uma String dele, só que quando cai ai, o processamento do programa fica em 100%, mas só algumas vezes. Notei que ele fica quando a variável “tam” vem com o valor de 39075.
Caso eu coloque Thread.sleep(250); após o “byte[] b = new byte[tam];”, funciona perfeitamente.
Ou ainda, caso eu coloque o “byte[] b = new byte[39075];” antes da primeira linha, e remova a linha “byte[] b = new byte[tam];”, também funciona perfeitamente.
O que pode estar ocasionando isto? Demora na criação do array?
Mas obs: está tudo dentro de try e catch, e não ocorre nenhuma excessão.
Obrigado!