Esta sección describe los tipos de datos básicos utilizados en los mensajes.
n(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).
n[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].
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").
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.
n(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').