50.3. Types de données des message

Cette section décrit les types de données basiques utilisés dans les messages.

Intn(i)

Un entier sur n bits dans l'ordre des octets réseau (octet le plus significatif en premier). Si i est spécifié, c'est exactement la valeur qui apparaîtra, sinon la valeur est variable, par exemple Int16, Int32(42).

Intn[k]

Un tableau de k entiers sur n bits, tous dans l'ordre des octets réseau. La longueur k du tableau est toujours déterminée par un champ précédent du message, par exemple, Int16[M].

String(s)

Une chaîne terminée par un octet nul (chaîne style C). Il n'y a pas de limitation sur la longueur des chaînes. Si s est spécifié, c'est la valeur exacte qui apparaîtra, sinon la valeur est variable. Par exemple, String("utilisateur").

[Note]

Note

il n'y a aucune limite prédéfinie à la longueur d'une chaîne retournée par le serveur. Une bonne stratégie de codage de client consiste à utiliser un tampon dont la taille peut croître pour que tout ce qui tient en mémoire puisse être accepté. Si cela n'est pas faisable, il faudra lire la chaîne complète et supprimer les caractères qui ne tiennent pas dans le tampon de taille fixe.

Byten(c)

Exactement n octets. si la largeur n du champ n'est pas une constante, elle peut toujours être déterminée à partir d'un champ précédent du message. Si c est spécifié, c'est la valeur exacte. Par exemple, Byte2, Byte1('\n').