質問: ポート番号やIPアドレスはネットワークバイトオーダーとして、ビッグエンディアンで統一されていますが、C言語などのプログラミングででてくる send()やrecv()などの関数で送受信するデータ実体もネットワークバイトオーダー(ビッグエンディアン)で通信しているんですか?? データ自体は関係ないのですか? 以前、ホストバイトオーダーをチェックするプログラムを作成できたんですが、 このネットワークのペイロード内のエンディアンを確認するプログラムって作れるんでしょうか??
回答: こんにちは。 > > send()やrecv()などの関数で送受信するデータ実体もネットワークバイトオーダー(ビッグエンディアン)で通信しているんですか?? > > > ペイロードの中身がint型なのか、short型なのか、char型なのかの情報をプロトコル・スタックには与えていませんので、プロトコル・スタック側でエンディアン変換できません。 従って、send()/recv()へ渡したままの姿で送受信されます。 もし、エンディアン変換が必要なら自分でするしかないです。