54.6. Tipos de datos de mensajes #

Esta sección describe los tipos de datos básicos utilizados en los mensajes.

Intn(i)

Un entero de n bits en orden de bytes de red (network byte order, el byte más significativo primero). Si se especifica i, es el valor exacto que aparecerá; de lo contrario, el valor es variable. Ej. Int16, Int32(42).

Intn[k]

Un arreglo (array) de k enteros de n bits, cada uno en orden de bytes de red. La longitud del arreglo k siempre viene determinada por un campo anterior del mensaje. Ej. Int16[M].

String(s)

Una cadena finalizada en nulo (cadena estilo C). No hay ninguna limitación de longitud específica para las cadenas. Si se especifica s, es el valor exacto que aparecerá; de lo contrario, el valor es variable. Ej. String, String("user").

Note

No hay un límite predefinido para la longitud de una cadena que puede devolver el servidor. Una buena estrategia de programación para un cliente es utilizar un búfer expandible para que se pueda aceptar cualquier cosa que quepa en la memoria. Si eso no es factible, lee la cadena completa y descarta los caracteres finales que no quepan en tu búfer de tamaño fijo.

Byten(c)

Exactamente n bytes. Si el ancho del campo n no es una constante, siempre se puede determinar a partir de un campo anterior en el mensaje. Si se especifica c, es el valor exacto. Ej. Byte2, Byte1('\n').