Oppure

Loading
22/04/09 10:26
maniscalco
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
outs = new DataOutputStream(            // out è lo stream che scrive sulla socket
		             Server.connection.getOutputStream());             
	        DataInputStream fileIn = new DataInputStream(new BufferedInputStream(
	                             new FileInputStream("C:\Users\Jo\Desktop\"+file)));
	        int len=fileIn.available();
	        byte[] arr = new byte [len];
	        fileIn.readFully(arr);
	        outs.write(1);        // File trovato: invio 1 al client
	        outs.writeUTF(file); //invia nome file
	        outs.writeLong(len);  //invia la lunghezza del file
	        outs.write(arr); // Scrive il file


Lato Client

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


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