I.概要
ネットワークバイトオーダー.NET、TCP / IP通信ネットワークプログラミングに主に基づいて、この記事。あなたも覚えて助けみんなに希望するのと同時に、自己改善の過程で内容を記録して、それが便利です。技術の進歩は、共有と一定の自己突破口に由来します。
技術交流QQグループ:580 749 909インサイダーを交換する歓迎、記事の最後には、多くの注目を興味小さなパートナーの個人的なマイクロチャネルのパブリック番号を持っています。
第二に、はじめに
これに先立ち、我々は概念を明確に理解する必要があります。
CPUアーキテクチャは:多くの場合、x86のx64のアーキテクチャであるが、彼は32ビットと64ビットを有することを特徴とします。32と呼ばれるx86のは、後の64ビットバージョンと呼ばれるx64で現れました。
中央値OS :64ビットシステムが64ビットプロセッサに基づいており、64ビットシステムが64ビットプロセッサ上で実行することができますので、来るが、32個のプロセッサ上で実行することはできません!
そして、64ビットプロセッサは、X86が来て、32ビットに基づいているため、その後方互換性、32ビットシステムのサポート!
次のとおりです。
64ビットプロセッサ(X64):64ビットシステム、32ビットシステム
32ビットプロセッサ(X86):32ビットシステム。64ビット、16ビットシステムプロセッサも実行することができます。
だけ長いモードにした後ない、もはやである16ビット命令と互換。そうでない場合は、長い給電モード、または16ビット命令の後に実行することができます。
バイトオーダーとネットワークバイトオーダーとは何ですか?
ネットワークバイト順は、 TCP / IPを用いて、十分にデータを所定のフォーマットで表されている CPUのシステムから独立して動作し、タイプ、したがってデータが適切に異なるホストとの間の伝送に解釈することができることを保証することができます。
ホストバイトシーケンス、すなわちバイトの入力(出力)の配列は、第1フロントの前面または背面に来るされたコンピュータ上に格納されている配列。
IntelまたはAMDのx86 / x64アーキテクチャは必ずしもリトルエンディアンバイト順のホストである限りとして。
第三に、主なコンテンツ
データは各CPUに異なる方法です保存ように、異なるCPUアーキテクチャがあるので、なぜ「バイト順」の概念は、あります。
データを記憶するためのCPUメモリへの2つの方法があり、解像度モードに対応する二種類があります。
ビッグエンディアン(ビッグエンディアン)は:上位バイトは下位アドレスに格納されます。
リトルエンディアン(リトルエンディアン):上位バイトが上位のアドレスに格納されます。
整数0x12345678の、0x12を0x78とは最下位バイトで、最上位バイトです。ビッグエンディアンのバイト0x12をMSB最初のセーブしたがってプログラム(最上位バイトが低いアドレスに格納されている0x12を)
まず最下位バイトの保存0x78となります。上記の分析から、データは各CPUのために異なる方法で格納されています。従って、ホストCPUのエンディアンモードに格納されたデータの代表的なCPUのデータはまた、異なる異なっています。
直接0x1234の0x12,0x34時間順に送信されるデータの転送バイトオーダーを考慮ビッグエンディアンのシステム。小端部に記憶されている側のデータを受信する結果、したがってリトルエンディアンのデータが0x3412をプログラムしました。
このようなリトルエンディアン伝送システムは、それを使用することは不可能ではないのですか?今回はビッグエンディアン、それに対処するためによると統一、統一されたアプローチに同意しました。純それに対処する方法を、特別な必要があり機能この問題に対処するために。