È il motivo per cui normalmente si adotta una convenzione sull'ordine dei byte dei dati relativi al protocollo; i protocolli internet "classici" lavorano sempre in big-endian (e vengono normalmente fornite le funzioni ntoh*/hton* per gestire la conversione). Ma, prima ancora di preoccuparsi dell'endianness (tutti i PC "normali" ormai lavorano in little endian, per cui se non intendi portare il tuo codice a macchine big-endian puoi momentaneamente disinteressarti del problema), è più importante non scrivere dei generici int/long/..., ma usare dei tipi a dimensione fissata (int32_t, int64_t, ...), dato che a seconda della piattaforma le dimensioni degli interi possono cambiare.Originariamente inviato da Smoke666
Non ho tuttavia capito il suggerimento che mi ha dato MItaly...Come posso sapere se mi sono stati inviati dati in little o big endian? E' una cosa dipendente dall'architettura della macchina o sbaglio?

Rispondi quotando
) ho deciso di usare un int64_t. Ora sorge un dubbio che neanche google è riuscito a chiarirmi: per usare questo tipo di dato, ho bisogno di utilizzare una qualche conversione da int a int64_t? Mi spiego meglio, devo inviare la lunghezza di una stringa. La chiamata a strlen mi restituisce un int, come faccio a trasformarlo in int64_t?
