Mi scuso ci sono varie discussioni in proposito ma c'è un po' di confusione mi date una mano per favore
Devo inviare un file dal server al client e non ho ben capito il tipo di stream da utilizzare alcuni usano solo FileInputStream e FileOutputStream altri invece una combinazione di questi con ObjectInputStream e ObectOutputStream
Nel Server
codice:
............................
OutputStream os = socket.getOutputStream();
FileInputStream fis = new FileInputStream("C:\\file.mp3");
byte[] buffer = new byte[1024];
int pos=0;
try{
while((pos=fis.read(buffer))!=-1)
os.write(buffer, 0, pos);
}
catch(IOException e){e.printStackTrace();}
..............................
Nel Client
codice:
.......................
File salva = new File (nome);
FileOutputStream fos = new FileOutputStream(salva);
InputStream is = socket.getInputStream();
byte[] buf = new byte[1024];
int p = 0;
while((p=is.read(buf))!=-1) {
fos.write(buf, 0, p);
}
...........................................
Questa è una soluzione o funziona solo perchè il client e server sono sulla stessa macchina.Oppure devo mettere i dati in un paccheto di byte e spedirli con ObjectOutputStream (writeObject) e leggerli con ObjectInputStream (readObject)...
Un'altra domanda se il file e di grandi dimensioni come fare a inviare una quantita maggiore di dati contemporaneamete invece di leggere ed scrivere solo 1024 byte