Boa tarde galera, fiz um sisteminha de FTP. tah show de bola, faz upload e download direitinho, soh q nao consigo fazer dois downloads seguidos, pois retorna o erro ‘Socket is closed’
Segue o código de download (no server)
public void downloadFile(DataInputStream inFile, File file) {
try {
BufferedOutputStream outBuffer = new BufferedOutputStream(socketDados.getOutputStream());
int tamanhoArquivo = 0;
long antes = System.currentTimeMillis();
int tamanhoTotalCopiado = 0;
byte[] buffer = new byte[1024];
outputStream.writeObject(Util.NOMEARQUIVODOWNLOAD + " " + file.getParent() + "(SERVER)" + file.getName());
while ((tamanhoArquivo = inFile.read(buffer)) > 0) {
outBuffer.write(buffer, 0, tamanhoArquivo);
tamanhoTotalCopiado += tamanhoArquivo;
System.out.println("[SERVER] Enviando arquivo... " + tamanhoTotalCopiado + " bytes");
}
inFile.close();
outBuffer.flush();
outBuffer.close();
socketDados.close();
long depois = System.currentTimeMillis();
System.out.println("\n[SERVER] Tempo total para o download: " + new Long(depois - antes) + " ms");
} catch (IOException ex) {
System.out.println("[SERVER] Erro ao fazer o upload do arquivo!");
ex.printStackTrace();
}
}
Na linha outBuffer.close() automaticamente o socketDados também é fechado, então na próxima vez que eu fizer um download, retornará socket is closed na linha 3.
Gostaria de saber como faço esse lance, pro socket ficar ativo de novo mesmo com o outBuffer.close();
Desde já agradeço