Salve ragazzi, ho passato tutto la sera a tentare di capire dove fosse il problema, ma aimè, non ci sono riuscito, per questo chiedo a voi.

Sto scrivendo un'applicazione per il trasferimento di file.
Premetto che l'applicazione, quindi un server e due client, in locale funziona correttamente, quindi permette ai due client di connettersi tra loro e scambiarsi il file.
Il problema sorge quando l'applicazione la provo su internet, con un server su una postazione e due client su altrettante postazioni.
In particolare il client che deve ricevere (destinatario) il file lancia un'eccezione del tipo FileNotFoundException e mi dice che NON trova il file specificato, segue quindi la scritta del path del file residente sul client mittente.

allego il codice del destinatario:
destinatario
try {
ObjectInputStream oin = new ObjectInputStream(socket.getInputStream());
String currentDirectory = System.getProperty("user.dir");
String downloadPath=currentDirectory+"/download";
inFile = (File)oin.readObject();
File saveFile = new File(downloadPath + "/" + inFile.getName());
// salvo il file
save(inFile, saveFile);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
serversocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}

private void save(File in, File out) throws IOException {
System.out.println(" --ricezione file " + in.getName());
System.out.println(" --dimensione file " + in.length());

FileInputStream fis = new FileInputStream(in);
FileOutputStream fos = new FileOutputStream(out);
byte[] buf = new byte[1024];
int i = 0;
while((i=fis.read(buf))!=-1) {
fos.write(buf, 0, i);
}
// chiudo gli strams
fis.close();
fos.close();

JOptionPane.showMessageDialog(null, "ricezione file completata");
}
ed ecco il codice del client mittente
mittente
[...]
socket = new Socket();
socket.connect(sockaddr, timeoutMs);
socket.setSoTimeout(timeoutMs);
System.out.println("connessione stabilita con il server peer!");
System.out.println("inzio fase trasferimento file");
String currentDirectory = System.getProperty("user.dir");
String downloadPath=currentDirectory+"/download";
filetoSend = new File (downloadPath + "/" + fileName);
sendFile(filetoSend);
socket.close();



} catch (SocketTimeoutException e) {
JOptionPane.showMessageDialog(null, "Impossibile stabilire connessione con il peer per il trasferimento del file!");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Impossibile stabilire connessione con il peer per il trasferimento del file!");
}
finally {
try {
socket.close();
} catch (IOException e) { }
}


}

private void sendFile(File file) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.reset();
oos.writeObject(file);
oos.flush();
oos.close();
}
Ringrazio tutti in anticipo per qualsiasi tipo di aiuto.
Auguri a tutti e buone feste