コマンドとデータを交換することにより、TCP / IPを介して相互に通信する2つのプログラムがあります(接続はすでに成功しています)。コマンド(ASCII)とバイナリデータ(float、double、int、char、wchar_tなど)を交換できるプロトコルを探しています。
そのための基準はありますか?それとも、物を交換するための独自のプロトコルを発明する必要がありますか?
プログラムはC++とQtで書かれています。
コマンドとデータを交換することにより、TCP / IPを介して相互に通信する2つのプログラムがあります(接続はすでに成功しています)。コマンド(ASCII)とバイナリデータ(float、double、int、char、wchar_tなど)を交換できるプロトコルを探しています。
そのための基準はありますか?それとも、物を交換するための独自のプロトコルを発明する必要がありますか?
プログラムはC++とQtで書かれています。
Qtを使用している場合は、QDataStream
http: //doc.qt.io/qt-4.8/qdatastream.htmlを参照してください。
この種のメッセージを説明するには、header+dataを使用することをお勧めします。ヘッダーには、たとえばメッセージタイプフィールドを含めることができ、その値に応じてデータのコンテンツをキャストできます。実装はそれほど複雑ではないと思います。これがある場合、必要なもの(QDataStreamなど)を介してこのような構造を交換できます。
Qtを使用している場合は、これが役立つ場合があります。
一般に、バイトごとの形式を選択してから、ソケットの両側でシリアル化および逆シリアル化する必要があります。そうしないと、最終的にエンディアンまたはOS間のサイズの違い(通常は32ビットシステムと64ビットシステム)のいずれかで問題が発生します。