Conversiones

Existen dos tipos de ordenamiento de bytes: bytes más significativos, y bytes menos significativos. Éste es llamado “Ordenación de Bytes para Redes”[1], algunas máquinas utilizan este tipo de ordenación para guardar sus datos internamente.

Existen dos tipos a los cuales seremos capaces de convertir: short y long [2]. Imaginémonos que se quiere convertir una variable larga de Ordenación de Bytes para Nodos a una de Orden de Bytes para Redes. ¿Qué haríamos? Existe una función llamada htonl() que haría exactamente esta conversión. Las siguientes funciones son análogas a ésta y se encargan de hacer este tipo de conversiones:

Estarás pensando ahora para qué necesitamos todas estas funciones, y el porqué de estos ordenamientos. Bien, cuando se termine de leer este documento todas estas dudas se aclararán (aunque sea un poco). Todo lo que necesitará es leer y practicar mucho.

Una cosa importante, es que sin_addr y sin_port, de la estructura sockaddr_in, deben ser del tipo Ordenación de Bytes para Redes. Se verá, en los ejemplos, las funciones que aquí se describen para realizar estas conversiones, y a ese punto se entenderán mucho mejor.

Notas

[1]

que es la traducción al español de Network Byte Order. El término también es conocido como “Big-Endian Byte Order”. Tener en cuenta que, si no se habla de Ordenación de Bytes para Redes, se hablará de Ordenación de Bytes para Nodos. Nota del T.

[2]

los cuales ocupan 2 y 4 bytes de memoria, respectivamente.