Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [c++] trasmettere file

  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    [c++] trasmettere file

    Sto imparando a programmare con le winsock, riesco a fare un client/server che si inviano del testo con dei buffer di char.
    La cosa però mi sembra piuttosto limitante, se voglio inviare qualcosa di diverso dal semplice *char ??
    Se ad esempio voglio trasmettere un file?

    Idee,suggerimenti,guide?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Mi rispondo da solo....uso la funzione TransmitFile()

    http://msdn.microsoft.com/library/de..._functions.asp

    Ma come gestisco la cosa lato server che riceve il file???
    Qui non è detto!!
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Mi ri-rispongo da solo.....si usa la stessa funzione!!
    Solo che non mi funge.....
    codice:
      //Ricezione file 
    //.....
      HFILE hf;
      OFSTRUCT of;
      
      cout << "Apertura File" <<endl;
      hf = OpenFile("C:\\prova.txt",&of,GENERIC_WRITE);
      cout << "File Aperto" << endl;
      if(TransmitFile(s,&hf,0,0,NULL,NULL,TF_DISCONNECT))cout <<"Esito ricezione OK" << endl;
    //....
    Ora mi chiedo perchè non funziona? Le mie ipotesi sono 2:
    1)Passo dei parametri sbagliati alla funzione TransmitFile()
    2)La funzione TransmitFile() va bene, solo che ritorna FALSE perchè lavora in modo asyncrono (mi pare di aver capito così.... )...solo che devo leggere il file e salvarlo....ma come????

    Help
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    Perchè non funge??
    codice:
    //.....
    
    HFILE hf;
    OFSTRUCT of;
       
       cout << "Apertura File" <<endl;
       hf = OpenFile("prova.txt",&of,0);
       if(hf==HFILE_ERROR)cout << "Errore apertura file!"<< endl;
    
       if(TransmitFile(s,&hf,0,0,NULL,NULL,0))cout <<"file inviato" << endl;
       else cout << "File non inviato" << endl;
    
    //.....
    Mi dà sempre "file non inviato"!!
    Aiuto please!!
    Cosa sbaglio??
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5

    ...

    Qualunque cosa tu debba trasmettere, sono byte.
    Che tu trasmetta un carattere, un intero, un file..., non ha rilevanza, sono sempre un mucchio di byte.
    Leggi i byte con le API di basso livello e trasmettili sotto forma di buffer. I dettagli implementativi non li so, ma di sicuro si farà così.

    CIAO !

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 © 2024 vBulletin Solutions, Inc. All rights reserved.