codice:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client_Progetto
{
Socket s;
public Client_Progetto() throws IOException
{
String indirizzoIP = "192.168.1.233";
int porta = 9876;
String destinazione = "C:\\prova\\";
// mi connetto al server
boolean connected = connect(indirizzoIP,porta);
if (connected == false)
{
System.out.println("Non esiste alcun server sulla porta " + porta);
System.exit(0);
}
// avvio la ricezione del file
ricevi_File(destinazione);
}
// funzione per connettermi al server
public boolean connect(String ip,int port)
{
boolean result = false;
try {
s = new Socket(ip,port);
result = true;
System.out.println("* connesso con successo");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public String[] ricevi_parametri(ObjectInputStream ois)
{
String parametri_file[] = null;
try {
String param = (String)ois.readObject();
parametri_file = param.split(",");
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return parametri_file;
}
public void ricevi_File(String dest) throws IOException
{
System.out.println("* Inizio processo di ricezione");
String destinazione = dest;
int read = 0;
int tot = 0;
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
String [] param_file = ricevi_parametri(ois);
String nome = param_file[0];
int dimensione = Integer.parseInt(param_file[1]);
// stream per il salvataggio del file su disco
File file = new File(destinazione+nome);
// apro outputStream
FileOutputStream fos = new FileOutputStream(file, true);
byte[] buf = new byte[1024];
System.out.println("* Ricevo: ");
// prendo il pacchetto di 1024 kb
try{
while ((read = ois.read(buf)) != -1) {
tot += read;
System.out.println(" - "+tot+ " byte");
// scrivo il pacchetto su disco
fos.write(buf, 0, read);
}
}catch(java.net.SocketException e)
{
//if (tot == dimensione)
//{
System.out.println("** File ricevuto con successo");
//}
//else
//{
// System.out.println("$$ ERRORE - c''è stato qualche problema!");
//}
}
}
public static void main(String Args[]) throws IOException
{
new Client_Progetto();
}
}