Estoy escribiendo un programa que usa QUdpSocket para transmitir datos a través de la red. Este es mi primer programa de socket y me he encontrado con un problema interesante llamado Endianness.Qt Sockets and Endianness
Mi pregunta real en, ¿tengo que preocuparme por Endianness cuando estoy usando QNetwork como mi biblioteca de sockets? Si tengo que preocuparme, ¿qué debo hacer para evitar adecuadamente los problemas de Endianness?
Gracias de antemano.
No siempre es necesario o sensato hacer esto, si estuviera transmitiendo video o no tendría sentido convertir cada byte en htons y luego volver de nuevo; sería mejor tener un código para que la máquina receptora supiera en qué dirección estaban los datos. –
Incorrecto, UTF-8 es una codificación de ancho variable, garantiza que representa todos los caracteres Unicode y puede tomar hasta 4 bytes. –
No, su comprensión es incorrecta. UTF-8 es la codificación de ancho variable, pero no se ve afectada por endianness porque los caracteres de longitud variable se componen de secuencias de bytes ordenadas, a diferencia de UTF-16 o UTF-32 donde la unidad más pequeña es un entero binario de 2 (o 4) bytes cuyo orden de bytes está determinado por la arquitectura endianness. –