Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    86

    [C] Trasferimento file con socket

    Ciao a tutti,
    sono giorni che sto cercando di implementare una funzione che mi permetta di trasferire file da host all'altro.
    Per ora quello che ho fatto funziona bene solo con i file di testo. Ad esempio se provo a trasferire un file binario mi da problemi!

    PS: sto lavorando sotto linux!!

    Help!!! VVoVe: VVoVe: VVoVe:

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma se non posti il codice che ti da' problemi, cosa si puo' fare?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    86
    giustamente avete ragione mi sono dimenticato del codice

    vi posto direttamente la parte interessata:

    SERVER:
    codice:
    /* filename è il nome del file da aprire */
    int f = open(filename,O_RDONLY);
    int nread;
    int totread = 0;
    while( (nread=read(f,buf,MAXLINE) ) > 0 ) {
           writen(sockd,buf,strlen(buf));
    }
    
    close(f);
    
    // MAXLINE = 1024
    // char buf[MAXLINE]
    // sockd è il descrittore del socket

    CLIENT:
    codice:
    int out = open(filename,O_WRONLY|O_TRUNT|O_CREAT);
    
    while((nread = read(sockd,buf,MAXLINE)) {
           writen(out,buf,strlen(buf));
    }
    
    close(out);
    Il codice grosso modo è questo...non ho il sorgente a porta di mano. Intanto potete dirmi se il ragionamento è giusto o devo fare qualcos'altro per poter trasferire un file?!!? Sul web ho trovato poco e niente a riguardo!!

    Grazie a tutti

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    86
    uppete

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.