Eu desenvolvi uma aplicação cliente/servidor que tem o propósito de pegar um arquivo como por exemplo uma música de um lado, carregar ela em um array de bytes, passar para o cliente, que a remontará. Acontece que a transferência está EXTREMAMENTE lenta. Levando mais de uma hora simplesmente para enviar uma música.
dos = new DataOutputStream(socket.getOutputStream());
dos.write(byteArray[indice]);
Eu imagino que esteja demorando tanto para transferir porque o socket transforma os bytes em string antes de enviar, e depois remonta as strings em bytes do outro lado.
Alguém pode me dar uma luz em como resolver esse problema de lentidão na transferência?
Sim, a transferência é byte a byte. Pode ser que isso realmente seja o que está atrasando a transferência. É possível transferir todo um buffer de bytes de uma vez só? Vou dar uma estudada no que você me falou e trarei respostas.