Boa tarde galera, estou fazendo uma aplicação que envia bytes de um arquivo via socket, só que está ocorrendo o seguinte. O programa chama o primeiro .write, faz um loop e quando chama de novo trava nele. Segue o código:
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
OutputStream envia = usuario.getSocketFTP().getOutputStream();
int tamanho = 102400; // buffer de 100KB
byte[] buffer = new byte[tamanho];
int lidos = -1;
while ((lidos = fis.read(buffer, 0, tamanho)) != -1)
{
System.out.println(usuario.getSocketFTP().isConnected());
envia.write(1);
envia.write(buffer, 0, lidos);
System.out.println("Transferi");
}
Código do cliente:
fos = new FileOutputStream(arquivoBaixar);
int tamanho = 102400; // buffer de 10KB
int totalLido = 0;
byte[] buffer = new byte[tamanho];
while(socketFTP.getInputStream().read() == 1)
{
System.out.println("Esperando arquivo ler");
totalLido = socketFTP.getInputStream().read(buffer, 0, tamanho);
fos.write(buffer, 0, totalLido);
}