Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Trasferimento File con Resume
Forum - Java - Trasferimento File con Resume

Avatar
maniscalco (Normal User)
Newbie


Messaggi: 3
Iscritto: 22/04/2009

Segnala al moderatore
Postato alle 12:26
Mercoledė, 22/04/2009
Salve a tutti ragazzi/e/x sono un newbie del forum e avrei una questione : ho implementato un piccolo programmino multithread Server/client che al momento permette il trasferimento di file anche se non di grandi dimensioni tramite l utilizzo di un array di byte ora il problema sorge poichč avrei bisogno di implementare un resume per questi trasferimenti , che anche se non arrivano a grandi dimensioni cmq fino ad un 20 mb l ho testato e funziona , vi posto il codice dei due lati per il send e il receive e spero che qualche anima pia mi dia una mano grazie in anticipo
Lato Server
Codice sorgente - presumibilmente Java

  1. outs = new DataOutputStream(            // out č lo stream che scrive sulla socket
  2.                              Server.connection.getOutputStream());            
  3.                 DataInputStream fileIn = new DataInputStream(new BufferedInputStream(
  4.                                      new FileInputStream("C:\\Users\\Jo\\Desktop\\"+file)));
  5.                 int len=fileIn.available();
  6.                 byte[] arr = new byte [len];
  7.                 fileIn.readFully(arr);
  8.                 outs.write(1);        // File trovato: invio 1 al client
  9.                 outs.writeUTF(file); //invia nome file
  10.                 outs.writeLong(len);  //invia la lunghezza del file
  11.                 outs.write(arr); // Scrive il file



Lato Client

Codice sorgente - presumibilmente Java

  1. if(c==1){System.out.println("File Trovato Download in Corso");
  2.                                         String file=indaServer.readUTF();
  3.                                        
  4.                                         while(true){
  5.                                         OutputStream fileOut = new BufferedOutputStream(
  6.                                          new FileOutputStream("C:\\Users\\Jo\\Desktop\\s\\"+file));
  7.                                         byte[] lens = new byte [(int) indaServer.readLong()];
  8.                                         indaServer.readFully(lens);
  9.                                         fileOut.write(lens);
  10.                                         //if(fileOut.equals(lens)){fileOut.close();}else {System.out.println("non va");}
  11.                                         fileOut.close();
  12.                                         FileInputStream fileIn= new FileInputStream("C:\\Users\\Jo\\Desktop\\"+file);
  13.                     int len=fileIn.available();
  14.                     System.out.println("e stato richiesto il file "+file+" contenente "+len+"B di dati");
  15.                     System.out.println("");
  16.                                         break;}



Ovviamente non ho postato tutto il codice per problemi di lunghezza pero se qlkuno ha bisogno di ulteriori info posso spedirlo

PM Quote