ネットワークプログラミングの概要 1

1. ネットワークの基本:

概念: 1> ネットワーク プログラミングの本質はプロセス間の通信ですが、プロセスは異なるホストに分散されます。

           2>クロスホスト送信のプロセスでは、通信を行う前に通信プロトコルを決定する必要があります。

1. OSI アーキテクチャ (強調)

7 層モデルを定義します。

 2.TCPプロトコル     

 1) ネットワークインターフェースと物理層 

 3. IPアドレスの分割

 4. ドット10進法

 5.サブネットマスク

 TCPとUDPのポート番号は互いに独立しています

2. クロスホスト送信

 1. 小節の流れ(要点

エンディアンネスは、コンピュータがマルチバイト整数のシーケンスを保存する方法です。

1>リトルエンディアンのバイトオーダー: 下位バイトはローカルアドレスに格納されます。

2>ビッグエンディアン: 上位バイトはローカルアドレスに格納されます。

3> コンピュータメモリの読み取り: すべてが下位アドレスから上位アドレスまで読み取られ、ビッグエンディアンとスモールエンディアンの変換を通じて読み取り結果が得られます。

4>char シングルバイト、float ダブル浮動小数点型、文字列以上のエンディアンステートメントはありません。

 ビッグエンディアンとスモールエンディアンのストレージを確認しますか?

#include<stdio.h>

union node
{
	unsigned int a;
	char b;
}

int main(int argc, const char *argv[])
{
	unsigned int a=0x87654321;
	char *ptr=(char*)&a;
	if(0x21==*ptr)
	{
		printf("小端\n");
	}
	else if(0x87==*ptr)
	{
		printf("大端\n");
	}

2. ローカルバイトオーダーとネットワークバイトオーダー

ローカル バイト オーダー: ホスト バイト オーダー、ネットワーク バイト オーダー: ビッグ エンディアン バイト オーダーの使用を指定します。

クロスホスト送信中は、互換性の問題を避けるために、同じバイト順序、つまりネットワーク バイト順序を使用する必要があります。

3. エンディアン変換機能

htons htonl ホストのバイトオーダー ---> ネットワークのバイトオーダー

ntohs ntohl ネットワーク バイト オーダー ---> ホスト バイト オーダー

4. 構造の調整

コンパイラは、CPU 値サイクルを高速化するために構造を調整します。データの調整はオペレーティング システムにも関連しているため、異なるホストが異なる調整方法を使用すると、データは解析されません。そのため、送信時に構造をキャンセルする必要があります。ネットワーク上の構造と体の位置合わせ

おすすめ

転載: blog.csdn.net/weixin_57039874/article/details/130458737