Ciao a tutti!!!
per fare trasferimento file da client a server ho scritto questo codice:
UPLOADER
codice:
ObjectOutputStream out = new ObjectOutputStream( sock.getOutputStream() );
System.out.println("Inizio esecuzione upload");
FileInputStream fis = new FileInputStream(fileToUpload);
byte[] dati = new byte[10000];
int quanti = fis.read(dati);
while( quanti > 0 )
{
out.writeObject( new Messaggio( dati, quanti, Messaggio.FILE_DATA) );
quanti = fis.read(dati);
}
DOWNLOADER
codice:
File file = new File( fileToDownload );
FileOutputStream fos = new FileOutputStream( file );
ObjectInputStream in = new ObjectInputStream( sock.getInputStream() );
boolean stoScaricando = true;
byte[] tmp;
while( stoScaricando )
{
Messaggio letto = (Messaggio)in.readObject();
switch( letto.getFlag() )
{
case Messaggio.FILE_DATA:
{
tmp = new byte[ letto.getQuanti() ];
for (int j=0; j<tmp.length; j++)
tmp[j] = letto.getData()[j];
fos.write( tmp );
fos.flush();
break;
}
case Messaggio.FINE_FILE_TRANSFER:
{
stoScaricando = false;
System.out.println("Fine trasferimento file.");
fos.close();
break;
}
}
}
Praticamente ottengo che il file viene trasferito per intero ma viene salvato dall'altra parte solo il primo blocco..ripetuto per l'intera lunghezza del messaggio. Nel caso di un mp3 si sentono i primi 10k di canzone ripetuti per l'intera durata della canzone 


Non riesco proprio a capire dove sia il problema...