2009-06-15 11 views
14

ネット上でデータ転送はどのバイトオーダーで行われますか?リトルエンディアンかビッグエンディアンか?データがホストに達すると、それはそれぞれのバイトオーダーにどのように変換されますか?ネット上のビッグエンディアンまたはリトルエンディアン?

+0

うまく説明使用を変換する必要がない場合は、もう少し説明することができますか? tcp/udp? –

+0

はどこから/どのようにホストに到達しますか? –

答えて

20

「ネットワークバイトオーダー」はビッグエンディアンであり、TCPなどのプロトコルは整数フィールド(ポート番号など)にこれを使用します。 htonsやntohsなどの関数を使って変換を行うことができます。あなたは、このようなXDRとしてPresentation Layerを使用している場合を除き

データ自体は、それは完全にアプリケーションが定義されています任意のエンディアンを持っていません。

2

送信した順番に転送されます。

従来、インターネットプロトコルではビッグエンディアンが使用されていました。これは、ほとんどの通信を行うマシンがビッグエンディアンであったためです。

あなたがネットを越え送信するために、独自の構造を定義する場合は、その規則に従う必要はありません。 Cプログラミングで

は、一般的に、人は多くの場合、変換を行うにはhtonsやntohsマクロを使用しています。

1

あなたはhtons((短い)ポート)を使用して、TCPを使用している場合は、あなたは、ネットワークの安全プロトコル(基本的にはビッグエンディアン)を使用し、ビッグエンディアン対少し気をいけないことができます。

あなたは http://www.codeguru.com/forum/showthread.php?t=292902

そのは

関連する問題