2010-12-14 6 views
0

私はサーバーにデータを送信するデバイスを持っています。私はメッセージを返すようにしたいサーバー上で検証した後「OK」メッセージの表示方法は?

  Data 
[ Client ] == > [ Server ] 

  OK 
[ Client ] < == [ Server ] 

を返すために、標準の「OK」のメッセージはありますか?そして "ERROR"メッセージ?どのように見えますか? (例:「0011」、「:110F」)

答えて

1

アプリケーションレベルのプロトコルを設計する必要があります。 TCPはバイトストリームなので、受信者がデータを構成するバイト(読み込みを停止するタイミング)を知ることができるように、クライアント - >サーバー部分の "データ"の定義でも何らかのプロトコルが必要です。

プロトコルの一般的なタイプのカップルが...

  • 長区切りチャンクです。すべてのメッセージは、16または32ビット長の接頭辞で始まります。その後、その多くのバイトが続きます。長さは定義されたバイトオーダでなければなりません(htons, ntohs, etc参照)。このプロトコルを使用するすべての人は、プレフィックスの長さを読み取ってその数バイトを読み取ることを知っています。ネットワーク上の "チャンク"を定義したら、チャンクの内容にヘッダーを置くことができます。おそらくメッセージタイプ(ACK、NAK、データなど)に続いていくつかの内容があります。
  • ASCII改行が区切られています。各メッセージはASCII(またはUTF8など)テキストの行です。改行で終わります。行の改行は、上記のチャンクの長さ接頭辞と同じ役割を果たします。次に、各行にあるもの(スペースやカンマ区切りのASCII/UTF8 /任意のフィールドなど)を定義します。

他のアイデアを思いつくこともできますが、それは基本的な仕事です。つまり、アプリケーションレベルのプロトコルをTCPの上に定義することですバイトストリーム。

+0

"ACK"の既定のメッセージがないとわかったら、メッセージを作成し、データフィールドに自分自身の "ACK"を作成する必要があります。 – BrunoLM

+0

TCPプロトコルにはいくつかの低レベルのACKが組み込まれています。しかし、それは2つのホスト上のOSレベルのTCP実装の間だけです。それは交換機の良さ/悪さのアプリレベルの確認には役に立たないでしょう。 TCPはバイトのストリームです。何もありません。 "メッセージ"のようなことさえありません。デフォルトのACKメッセージはそれほどありません。 TCPバイトストリームの上に上位のプロトコルを構築する必要があります。 –

関連する問題