Qualcuno sa come copiare un file da un host remoto? Ci sto sbattendo da giorni. Quando il mio client ftp riceve dall'utente una richiesta di download, sgancia un nuovo thread che si connette al server.
Questo nuovo thread inoltra la richiesta di get al server, fornendogli il path del file desiderato, una stringa quindi, e poi trasferisce l'output del server su un file omonimo.
In teoria volevo fare così...
Ho usato istruzioni come queste ma non va: il file creato localmente è vuoto.
codice:
DataInputStream src=new DataInputStream(socket.getInputStream());
FileOutputStream dst=new FileOutputStream(path);
PrintWriter p=new PrintWriter(socket.getOutputStream(),true);
p.println("get%"+path+"%");
// alternativa
// while(src.available()!=0) dst.write(src.read());
byte b[]=new byte[1024];
int len;
while((len=src.read(b))>0) dst.write(b,0,len);
le istruzioni sul server sono simmetriche.
codice:
FileInputStream src=new FileInputStream(path);
DataOutputStream dst=new DataOutputStream(socket.getInputStream());
// alternativa
// while(src.available()!=0) dst.write(src.read());
byte b[]=new byte[1024];
int len;
while((len=src.read(b))>0) dst.write(b,0,len);