escrevendo codigo para comunicacao em rede em Java e diversao garantida, na verdade eh diversao em qualquer linguagem …
nestas aventuras eu estava passando por um problema muito interessante, que vou compartilhar.
Uma aplicacao amiga de streaming de video que manda imagens de um servidor para um cliente, que rodando o cliente na
propria maquina do servidor todos iam felizes, ateh que resolvi testar acessando de outra maquina … legal funcionou maneiro !
de outra maquina diferente … bum !! os dados davam uma zoneada firme !! nossa pensei que podia ser perda de pacote, configuracao de rede e outros breguetes.
mas o problema real, eh que um valorzim sinistro que eh sempre esquecido, estava de fato sendo esquecido, que eh o numero de bytes lidos pelo stream
ou seja na maioria dos casos o inputstream lia o tamanho do buffer, mas as vezes nao conseguia encher o buffer, e o numero vinha menor !!!
e eu nao estava verificando isto (topeira)
o codigo alterado ficou mais ou menos assim (o trecho do inputstream)
int bytesRead = reader.read(buffer);while (bytesRead < buffer.length) {bytesRead += reader.read(buffer, bytesRead, buffer.length - bytesRead);}


