TCP に依存する小さなクライアント/サーバー アプリケーションを (C で) 書き始めました。ネットワークプログラミングの経験がありません。この投稿のオープンエンドの文字で申し訳ありません。
メッセージをエンコードおよびデコードする最善の方法を考えています。私は次のアプローチを選択しました。
クライアントはサーバーにコマンドを送信します。すべてのコマンドには、それに割り当てられた番号と構造体があります。構造体は、コマンドの引数と、引数がメモリ内 (およびストリーム内) に配置される方法を格納します。クライアントがコマンドを送信する場合、それぞれの構造体にデータを入力します。サーバーがコマンドを認識するために、クライアントはコマンド番号を含む 1 バイトを送信します。コマンド番号バイトの直後に、メッセージ自体がストリームに供給されます (そのフィールドはネットワーク バイト オーダーに適切に変換されます)。
このアプローチにより、コードが機能するようになりましたが、多くの冗長性が伴います (switch ステートメントを何度も書いていることに気づきました)。より良い方法はありますか?標準的な手順は何ですか?