Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    INVIO file client server con socket

    Ciao a tutti, ho un problemino:
    dal mio client invio un file al server con questa dicitura

    FileInputStream fis = null;
    DataOutputStream os = null;
    Socket s = null;

    try{
    s = new Socket("localhost", 8190);
    os = new DataOutputStream( s.getOutputStream() );
    fis = new FileInputStream("fabrianocurriculum.doc");
    int i = -1;
    while( ( i = fis.read() ) != -1 ){

    os.write( i );
    }
    }finally{
    //su "os" ho il file fabrianocurriculum.doc che il client può ora leggere
    fis.close();
    os.close();
    }


    kredo vada bene anche se non ne sono sicura.
    Ora il problema è...quando il client riceve il file....come faccio per farglielo leggere???
    Grazie mille in anticipo per gli aiuti...

  2. #2

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da paolabuba
    Ciao a tutti, ho un problemino
    ...ricordare il linguaggio di programmazione nel titolo, come da Regolamento.

    Va sempre indicato. Ciao e buona festa!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    JAVA SOCKET problema ricevere file da client

    Ciao a tutti:
    ho scritto un'applicazione client/server in cui il client invia un file al server.Ora la parte di invio credo sia corretta.Il problema è in ricezione: in tutti gli esempi che ho trovato il server che riceve il file lo stampa a video, mentre io vorrei che si salvasse tale file ricevuto.Come posso fare?
    Posto qui sotto la parte di codice di invio e ricezione che ho scritto, anche se ci sono degli errori (credo in ricezione,non so se anche in invio).Spero che qualcuno sappia darmi una mano.
    Grazie.

    INVIO FILE
    ...
    Socket clientSocket = new Socket("localhost",8190);
    try {
    FileOutputStream file = new FileOutputStream("documento.doc");
    ObjectOutputStream out = new ObjectOutputStream(file);
    out.flush();
    out.close();
    }
    catch (Exception e) {
    System.err.println(e);
    }
    ...


    RICEZIONE FILE
    ...
    ServerSocket porta = new ServerSocket(8190);
    Socket socket = porta.accept();
    try{
    ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
    ...???? QUESTA ULTIMA RIGA NON CREDO VADA BENE...POI PER SALVARLO???.....please help me.....

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Ho unito le discussioni che hai aperto per evitare dispersione in quanto vertono tutte sulla stessa problematica, cioè inviare e ricevere file attraverso i socket in Java.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    up.....please raga....datemi un aiuto....questa ultima post è il mio problema attuale......

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Perchè non dovrebbe andar bene l'ultima riga? Quella riga consente al server di ricevere i dati dal client.

    La mia perplessità è che tu cerchi di inviare un oggetto File: quell'oggetto rappresenta un "puntatore ad un file" locale al client... quello che dovresti fare tu è far leggere il file al client, impacchettarlo in un messaggio come array di byte e inviare questo al server.

    Dall'altro lato, il server riceve il pacchetto, estrae l'array di byte e lo scrive utilizzando un FileOutputStream.

    La cosa è semplicissima.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    ok....e....scusa se te lo kiedo....potresti farmi un esempio di come si legge il file...lo si impacchetta e lo si invia...?magari anke nel mio caso....
    sicuramente per te sarà semplice...ma io non ho proprio idea di come si faccia.....

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Questa è la psocedura per l'invio di un file dal client al server, vista da entrambe le prospettive.
    codice:
    // --- LATO CLIENT --
    
    ObjectOutputStream oos = new ObjectOutputStream( socket.getOutputStream() );
    
    // Leggo il file da inviare
    FileInputStream fis = new FileInputStream( fileDaInviare );
    byte [] pacchetto = new byte[ fis.available() ];
    fis.read( pacchetto );
    fis.close();
    
    // Invio il pacchetto dati al server
    oos.writeObject( pacchetto );
    
    
    
    // --- LATO SERVER ---
    
    ObjectInputStream ois = new ObjectInputStream( socket.getInputStream() );
    
    // Ricevo il pacchetto dati
    byte[] pacchetto = (byte[]) ois.readObject();
    
    // Lo scrivo nel file di destinazione
    FileOutputStream fos = new FileOutputStream( fileDiDestinazione );
    fos.write( pacchetto );
    fos.close();
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    Ciao Lele, posso intromettermi anche io nella discussione :=) ?
    Ma se anzi che fare così:

    codice:
    ObjectInputStream ois = new ObjectInputStream( socket.getInputStream() );
    io facessi così:

    codice:
    InpustStream is = clientSocket.getInputStream();
    In che modo potrei allocare correttamente lo spazio per byte[] pacchetto?
    Perchè adoperi ObjectInputStream?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.