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
Nel Clientcodice:............................ 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();} ..............................
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)...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); } ...........................................
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

Rispondi quotando

