....quello che non capisco è come mai quando vado a togliere l'altra parte di codice che è identica a quella in questione a differenza della stringa di comando che viene inviata dal client e letta dal server (ma il resto è tutto uguale, in quanto ricevo un file e lo memorizzo alla stessa maniera) non mi viene generata l'eccezione e funziona in quanto mi ritrovo il file xml correttamente scritto, invece se lascio entrambe le parti mi si genera l'eccezione e uno dei due file xml ricevuti (quello per cui si genera l'eccezione risulta vuoto).
Posto entrambe le parti con le variabili usate...magari non mi sono accorto di una stupidata.
codice:
int filesize=60223866; // filesize temporary hardcoded
int filesize2=60223865;
long start = System.currentTimeMillis();
int bytesRead;
int bytesRead2;
int current = 0;
int current2 = 0;
Socket client = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = in.readLine();
if("TI INVIO LE AZIONI ESEGUITE".equals(str)){
System.out.println("S: CLIENT DICE: '" + str + "'");
//RICEZIONE NELLA CARTELLA DI LAVORO DEL FILE AZIONITOSERVER.xml DAL
//DISPOSITIVO MOBILE
byte [] mybytearray2 = new byte [filesize2];
InputStream is2 = client.getInputStream();
FileOutputStream fos2 = new FileOutputStream("AZIONITOSERVER.xml");
BufferedOutputStream bos2 = new BufferedOutputStream(fos2);
bytesRead2 = is2.read(mybytearray2,0,mybytearray2.length);
current2 = bytesRead2;
do {
bytesRead2 = is2.read(mybytearray2, current2, (mybytearray2.length-current2));
if(bytesRead2 >= 0) current2 += bytesRead2;
} while(bytesRead2 > -1);
bos2.write(mybytearray2, 0 , current2);
bos2.flush();
long end = System.currentTimeMillis();
System.out.println("S: SERVER DICE: LOGAZIONITOSERVER.XML RICEVUTO");
System.out.println("TEMPO IMPIEGATO RICEZIONE DA PARTE DEL SERVER DEL FILE LOGAZIONITOSERVER.XML: "+(end-start));
bos2.close();
}
if("TI INVIO LE QUANTITA COMPERATE".equals(str)){
System.out.println("S: CLIENT DICE: '" + str + "'");
//RICEZIONE NELLA CARTELLA DI LAVORO DEL FILE QUANTITATOSERVER.xml DAL
//DISPOSITIVO MOBILE
byte [] mybytearray = new byte [filesize];
InputStream is = client.getInputStream();
FileOutputStream fos = new FileOutputStream("QUANTITATOSERVER.xml");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bytesRead = is.read(mybytearray,0,mybytearray.length);
current = bytesRead;
do {
bytesRead = is.read(mybytearray, current, (mybytearray.length-current));
if(bytesRead >= 0) current += bytesRead;
} while(bytesRead > -1);
bos.write(mybytearray, 0 , current);
bos.flush();
long end = System.currentTimeMillis();
System.out.println("S: SERVER DICE: QUANTITATOSERVER.XML RICEVUTO");
System.out.println("TEMPO IMPIEGATO RICEZIONE DA PARTE DEL SERVER DEL FILE QUANTITATOSERVER.XML: "+(end-start));
bos.close();
}
grazie mille...ora cmq controllo quanto mi è appena stato suggerito da valia che ringrazio!