PDA

View Full Version : [C] socket: leggere dati binari (immagine .ico)


Damage92
28-11-2009, 17:40
Salve!
Ho implementato l'http in un mio programma scritto in C. Per ora la relativa funzione scarica un semplice file di testo in ascii.
Vorrei però scaricare un'immagine (una .ico), sempre con http.
Purtroppo se provo a darla in pasto alla funzione, prima pare andare, ma poi l'immagine non viene letta correttamente, vengono scritti solo 11 byte sui 2kB che dovrebbero essere.

C'è qualcosa che dovrei sapere nel trattare i file come binari?
Un'altra cosa: che differenza c'è tra un file binario e uno di testo? Sono sempre sequenze di byte...

grazie :)

wingman87
28-11-2009, 18:04
Posta il codice.
Tutti i file sono sequenze di byte, quello che cambia è la codifica dei dati che rappresentano. Decodificare un semplice file di testo è particolarmente facile perché a ogni byte corrisponde un carattere. Per decodificare gli altri tipi di file devi conoscere la codifica adottata e decodificare di conseguenza.

Damage92
28-11-2009, 18:29
Posta il codice.
Tutti i file sono sequenze di byte, quello che cambia è la codifica dei dati che rappresentano. Decodificare un semplice file di testo è particolarmente facile perché a ogni byte corrisponde un carattere. Per decodificare gli altri tipi di file devi conoscere la codifica adottata e decodificare di conseguenza.

Grazie mille per il chiarimento :)

Ho risolto, c'era un errore nel codice :fiufiu: e ovviamente non si può utilizzare la funzione fputs... dato che si ferma al primo carattere di fine linea che trova.