Boa tarde galera, buscando na internet achei vários tutoriais de como fazer transferência de arquivos via socket, quase todos ensinando por esse método:
Código cliente
int tamanho = 4096; // buffer de 4KB
byte[] buffer = new byte[tamanho];
int lidos = -1;
while ((lidos = entrada.read(buffer, 0, tamanho)) != -1) {
fos.write(buffer, 0, lidos);
System.out.println(lidos);
}
fos.close();
Código servidor
int tamanho = 4096; // buffer de 4KB
byte[] buffer = new byte[tamanho];
int lidos = -1;
while ((lidos = fis.read(buffer, 0, tamanho)) != -1) {
System.out.println(lidos);
saida.write(buffer, 0, lidos);
}
saida.flush();
System.out.println("Arquivo enviado!");
bis.close();
Só que ao terminar de enviar os bytes, o servidor exibe a mensagem: “Arquivo enviado”, já o cliente parece esperar por mais bytes, mesmo mostrando que foram lidos 260 bytes no último looping. Alguém tem ideia do que pode ser isso?