PDA

Visualizza la versione completa : [C/C++]funzione per download file da sito


Ruvido
29-03-2008, 13:29
Ciao a tutti,
sto cercando di fare una funzione in C o C++ (sono gli unici due linguaggi in cui non parto da zero) per effettuare il download di una pagina di un sito.
Suppongo che dovrò effettuare la connessione e poi costruirmi la funzione per scaricare, il problema è che non so neanche da dove partire. Potete suggerirmi qualche link o libro dove trovare documentazione a riguardo? beh ovviamente se avete già la soluzione o se posso scaricare da qualche parte codice già scritto sicuramente non mi fate un dispiacere :rollo:

Dimenticavo, la pagina è del tipo http..ecc.../pagina.xml e non ho interesse ad inserire dinamicamente url, perchè per l'uso che poi farei (confronto stringhe) non è importante...

Grazie

andbin
29-03-2008, 14:47
Originariamente inviato da Ruvido
sto cercando di fare una funzione in C o C++ (sono gli unici due linguaggi in cui non parto da zero) per effettuare il download di una pagina di un sito.In C/C++ non ci sono ovviamente funzioni "standard" per la gestione dei protocolli come HTTP o FTP. Bisogna usare funzioni specifiche del S.O., se disponibili, oppure librerie esterne.
Quindi inizia con il chiarire per quale S.O. (io suppongo Windows) e quale compilatore hai a disposizione.

Ruvido
29-03-2008, 15:08
Ah ecco lo sapevo che mi ero dimenticato di specificare qualcosa.
Allora il sistema è linux, ho trovato qualcosa per creare socket, ma poi non so cosa si aspetta di ricevere il server per darmi l'accesso al contenuto di una particolare pagina.
Una volta messo giù qualcosa di funzionante per linux vorrei forse esportarlo anche per windows, ma questo è un passo successivo in quel caso dovrei appoggiarmi a winsock se non sbaglio...

Edit: ho trovato questa: http://www.lilik.it/~mirko/gapil/gapilpa2.html#gapilch16.html
corposa e molto dettagliata mi sa che prima di mettermi a fare qualsiasi cosa devo darci una letta accurata, perchè provando a scavare in codici già scritti ho qualche difficoltà nella comprensione... :(

Però se avete voglia di darmi qualche input...

menphisx
29-03-2008, 19:03
Utilizzando le socket, invii una stringa tipo:


GET /pagina.xml HTTP/1.1\n
\n

e poi gestisci la risposta.
Oppure usi librerie esterne.

Una guida buona per iniziare, oltre a gapil:
http://beej.us/guide/bgnet/

Per quanto riguarda windows, le socket API sono quasi uguali.

MItaly
29-03-2008, 22:27
Comunque se devi scaricare file tramite HTTP/FTP ti consiglio vivamente di fare ricorso a librerie di terze parti (ce ne sono di gratuite e multipiattaforma), che rispettano perfettamente i protocolli e ne sanno gestire correttamente gli errori.

Loading