私はゲームプロジェクト用のTCPネットワークを作成しています。 パケットが入ったとき、パケットの最初のバイトがそのパケットの処理タイプを決定します。パケットは、そのハンドルタイプに基づいてパケットを処理するメソッドに転送する必要があります。パケットを扱うためのデザインパターン
パケットタイプに基づいてメソッドを呼び出すことができますが、コードの重複を減らすために実装できるパターン
私はサブスクライバ/ノーティファイヤパターンをすでに使用していると思っていましたが、それには完全には反対していませんが、Subscribe(packetType、funcReference)コールをたくさん持っているかのように感じます。どちらも理想的です。
OSは、IPv4プロトコル、またはIPv6 Next Headerフィールドに基づいてパケットを処理します。例えば、プロトコル「6」はTCPであるので、OSはパケットペイロードをTCPに送信する。 [プロトコル番号](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)を参照してください。 –
また、IPv4パケットの最初のオクテットは、バージョン( '4')の4ビットとIHLを含みます。 IPv6パケットの第1オクテットは、バージョン(「6」)の4ビットと、トラフィッククラスの場合の最初の4ビットとを含む。あなたはそれを混乱させる前に、パケット構造を学ぶべきです。 –
特に重複しないようにするコードはどれですか?スイッチ/ケースステートメント自体、または何か他の? –