X vs Y ~1 min de lecture

Délimiteur ou préfixe de longueur pour encadrer un message

Un saut de ligne termine vos messages. Que se passe-t-il si leur contenu contient aussi un saut de ligne ?

Comparaison pour un message contenant OK, un saut de ligne, puis SUITE. À gauche, le saut de ligne sert de délimiteur sans échappement : le message est interprété comme deux messages. À droite, un préfixe annonce 8 octets : le destinataire lit tout le contenu comme un seul message.
Le diagramme montre qu’un saut de ligne dans le contenu coupe le message avec un délimiteur non échappé, mais reste du contenu avec un préfixe de longueur.

Un délimiteur et un préfixe de longueur sont deux façons de définir les limites d’un message. La différence pratique tient au contenu : peut-il contenir le marqueur choisi pour terminer le message ?

Avec un délimiteur, ce marqueur doit être interdit dans le contenu ou faire l’objet d’un échappement défini par le protocole. Par exemple, un message contenant « OK », un saut de ligne, puis « SUITE » sera interprété comme deux messages si le saut de ligne sert de délimiteur et qu’aucun échappement n’est prévu.

Avec un préfixe annonçant 8 octets, le destinataire attend les 8 octets du contenu et reconstitue un seul message, saut de ligne compris. Un délimiteur impose une règle sur le contenu ; un préfixe de longueur indique combien d’octets lire.

Dans le même esprit

À lire ensuite