2010-12-14 4 views
0

J'ai un périphérique qui envoie des données à un serveur.A quoi ressemble le message "OK"?

  Data 
[ Client ] == > [ Server ] 

Après la validation sur le serveur que je veux retourner un message:

  OK 
[ Client ] < == [ Server ] 

Y at-il une norme de message "OK" pour revenir? Et un message "ERREUR"? Comment ça ressemble? (par exemple ": 0011", ": 110F")

Répondre

1

Vous devez concevoir un protocole au niveau de l'application. TCP est un flux d'octets, donc même la définition de "Données" dans votre pièce client-> serveur a besoin d'un protocole pour que le récepteur sache quels sont les octets qui composent les données (quand arrêter la lecture).

Deux types de protocoles communs sont ...

  • morceaux délimité Longueur. Chaque message commence par un préfixe de 16 ou 32 bits. Alors que beaucoup d'octets suivent. La longueur doit être dans un ordre d'octets défini (voir htons, ntohs, etc). Tout le monde qui utilise ce protocole sait lire le préfixe de longueur puis lire autant d'octets. Après avoir défini ce "bloc" sur le réseau, vous pouvez mettre un en-tête sur le contenu du morceau. Peut-être un type de message (ACK, NAK, Data, etc) suivi de quelques contenus.
  • ASCII newline délimité. Chaque message est une ligne de texte ASCII (ou UTF8, etc.). Il se termine à une nouvelle ligne. Les fins de nouvelle ligne pour les lignes jouent le même rôle que le préfixe de longueur pour les morceaux ci-dessus. Vous définissez ensuite ce qu'il y a dans chaque ligne (comme l'espace ou les champs ASCII/UTF8/quelconques délimités par des virgules). Quelque part en ce que vous définissez à quoi ressemblent les données, ACK, etc

Je suis sûr que vous pourriez trouver d'autres idées, mais c'est le travail de base: la définition de votre protocole au niveau de l'application au-dessus de TCP flux d'octets.

+0

Donc, si je compris qu'il n'y a pas un message par défaut pour « ACK », je dois créer un message et le champ de données faire mon propre « ACK ». – BrunoLM

+0

Certains ACK de bas niveau sont intégrés au protocole TCP. Mais c'est seulement entre les implémentations TCP au niveau OS sur les deux hôtes. Cela ne va pas être utile pour une confirmation au niveau de l'application de la bonté/badness de l'échange. TCP est un flux d'octets - rien de plus. Il n'y a même pas une telle chose comme un « message », beaucoup moins un « message par défaut ACK ». Vous devez construire un protocole de plus haut niveau au-dessus du flux d'octets TCP. –

Questions connexes