[C] convertire numeri in stringhe
Inviato: martedì 10 aprile 2018, 16:18
Ciao a tutti, ho scritto un client-server che comunica tramite socket. Ad un certo momento devo inviare un numero ad un client e devo scriverlo in un buffer.
Ho provato ad utilizzare funzioni come snprintf ma non ho ottenuto risultati positivi... Cerco di spiegarmi meglio trascrivendo i frammenti di codice del server e del client
Lato server: "corr->n_msgs" contiene il numero intero che devo inviare al client. Converto in questo modo il numero intero e poi lo invio
Il client riceve tutto correttamente e poi trasforma il buffer in un numero in questo modo:
Non posso modificare il client ma solo il server... non riesco a capire come mai per numeri maggiori di zero il tutto funziona ma quando corr->n_msgs è uguale a zero il client con quell'operazione trasforma il numero 0 in un altro numero.
Ho provato ad utilizzare funzioni come snprintf ma non ho ottenuto risultati positivi... Cerco di spiegarmi meglio trascrivendo i frammenti di codice del server e del client
Lato server: "corr->n_msgs" contiene il numero intero che devo inviare al client. Converto in questo modo il numero intero e poi lo invio
Codice: Seleziona tutto
char *str;
str=calloc(4, sizeof(char));
*str=(char)(corr->n_msgs);Codice: Seleziona tutto
size_t nmsgs = *(size_t*)(msg.data.buf);