c / c ++ - la forma más segura de enviar time_t a través de socket
He configurado un entorno de cliente / servidor C ++ y estoy intentando enviar un valor time_t del servidor al cliente (algo útil en cualquier servidor). Pero estoy atravesando un dolor de cabeza: el tiempo no parece estar bajo ninguna especificación de tamaño. Me pregunto cuál es la forma más segura (más portátil) de enviar time_t a través de la red.
Este es un pequeño ejemplo:
time_t T = time(NULL);
unsigned char * P = (unsigned char *)&T;
// ... Convert it to network byte order, etc.
// Here, 's' would be the socket, and 'S'
// the size of the data that is going to
// be sent
send(s, P, S, 0);
Tengo dos problemas:
time_t no es de tamaño fijotime_t puede ser un typedef de un tipo de datos integral firmado o sin firmar¿Cómo puedo manejar esos dos problemas para poder enviarlos de manera segura entre (casi) cualquier arquitectura?
Gracias por adelantado.
EDITAR: Después de ver las mismas tres respuestas, me parece mejor responder aquí. Siento no haberte aclarado eso antes. Prefiero enviarlo en bytes 'puros', aunque enviarlo como una cadena no es un problema. Según tengo entendido, tendría que tener en cuenta (nuevamente) la firmeza y el tamaño del tipo de datos time_t en el sistema host, ¿no es así? (gracias y lo siento)