08:54:19)ここは趣味のプログラミングを楽しむための情報共有サービス。記事の一部は有料設定にして公開できます。扱う低レイヤープログラミングの雑多なテクニックをまとめます。』などを参考にしています。バックアップ目的で書籍のサンプルコードをホスティングしました。パケットが下位層でどのようにカプセル化されるのか。パケットがカプセル化している上位層のプロトコルの識別子が記載されます。パケット全体のサイズが変化するため、不変部分と可変部分に分けて定義されています。部分はスキップされるため定義されていないことに注意してください。0xb8これは同ファイルで定義されているサービス種別部に代わるものです。最大値も定義されています。...};雑多な知識サンプルコードを理解するための雑学です。return(0);}などとすると以下のように出力されます。そのため/usr/include/net/ethernet.hは以下のようにして読み込めます。すると以下の内容が定義されます。すると以下の内容が定義されます。間接的に実行されて以下の内容が定義されます。間接的に実行されて以下の内容が定義されます。間接的に実行されて以下の内容が定義されます。ついて多バイトデータをやりとりする際にはバイトオーダが問題になります。ビッグエンディアンのマシンとリトルエンディアンのマシンはそのまま多バイトデータを扱う通信ができません。そこでネットワーク通信のパケットに含めるデータはすべてビッグエンディアンに変換して送信するという決まりがあります。この場合のビッグエンディアンを特にネットワークバイトオーダとよびます。変換前のマシンのエンディアンをホストバイトオーダとよびます。以下の変換用関数が定義されています。実行されて以下の内容が定義されます。第二引数として使用されます。SIOCSという意味があります。以下のように使用します。関数はソケットにデバイスを割り当てるために使用します。ポートを割り当てることができます。以下の内容が定義されます。利用してビットフラグを操作するために利用します。クライアントの基本的なサンプルコードを記載します。ライブラリのサンプルコード集です。