0

サーバーにデータを送信するデバイスがあります。

            Data
[ Client ]  == >  [ Server ]

サーバーでの検証後、メッセージを返したい:

            OK
[ Client ] < == [ Server ]

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

4

1 に答える 1

1

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

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

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

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

于 2010-12-14T17:35:47.183 に答える