1. ホーム
  2. sockets

[解決済み] sockaddr構造体の理解

2022-03-07 18:05:35

質問

struct sockaddr {
    unsigned short sa_family;   // address family, AF_xxx
    char           sa_data[14]; // 14 bytes of protocol address
};

この構造では、具体的にどのような意味があるのでしょうか。 アドレスファミリー が描かれている sa_family ?

TCP/UDPのようなプロトコルは、"address"を持っているということでしょうか?まあ、プロトコルはアドレスではなく識別番号でもいいと思うのですが。

とにかく、もしそうだとしたら、その家族は何を基準に分けられてきたのでしょうか?

解決方法は?

アドレスの形式とサイズは、通常、プロトコルに依存します。

sockaddr は、識別されたユニオンのように動作する一連のアドレス構造のベースとして使用されます。 Beejネットワークガイド . 一般的には sa_family を作成し、適切なアドレスファミリーの固有のアドレス構造にキャストします。

TCPとUDPには固有のアドレスはなく、IPレベルではIPv4とIPv6で異なるサイズのアドレスが存在します。

こちらもご覧ください。