2011-07-19 13 views
2

私は、送信者が送信者のエンディアンをどのように識別しているかを頭の中に入れようとしています。私は最初のバイトが通常、送信者のアーキテクチャ/タイプであることを知っています。例えば、0x00はi386などです。しかし、受信者がそれをどのように解釈するのか分からなければ、最初のバイトはどのように役立ちますか?RPCでは、受信者は送信者アーキテクチャをどのように識別しますか?

答えて

3

endiannessは、バイト内のビットの順序ではなく、大きな番号へのバイトの順序付けを指します。 1バイトは常にエンディアンセーフです。ネットワークは透過的にバイトストリームを転送します(つまり、送信されたのと同じ順序でバイトが受信されます)。

+0

RPCでは受信機は単純に最初のバイトを読み込むことができますか?送信者が "0x01"を送信したければ、bigendian受信者は "0x10"を参照しませんか? –

+0

何かがあれば '0x80'と表示されますが、もう一度、それはエンディアンがしていないことです。エンディアンスワップは '0x1234'を' 0x3412'に変えますが、 '0x01'は' 0x01'のままです。言い換えれば、エンディアンスワッピングは、ビットではなくバイト全体をスワップします。そう、はい、受信機はちょうど最初のバイトを読むことができます。 – tdammers

+0

バー、私はいつもendiannessがビットなどではないバイトを交換するのを忘れる。ありがとう!それははるかに理にかなっています。 –

関連する問題