int socket(int domain, int type, int protocol);
私が理解したように、
int domain;
このパラメータは、アドレス ファミリまたはプロトコル ファミリを渡すために使用されます。アドレス ファミリとプロトコル ファミリの間に大きな違いはないと思います。これを使用して、アドレス タイプ (IPv4 または IPv6) を指定します。
int type;
このパラメーターは、ネットワーク層の UDP、TCP などの接続タイプに使用されます。
int protocol;
このパラメータは、TCP、UDP などのプロトコルを指定するために使用されます。
そして私の質問は
2番目と3番目のパラメータの違いは何ですか? TCP プロトコルを使用するSOCK_STREAM
場合は を使用し、UDP プロトコルを使用する場合はSOCK_DGRAM
in 2 番目のパラメーターを使用します。では、この場合、なぜ 2 つのパラメーターが必要なのでしょうか? 2 つではなく 1 つのパラメーターを使用しないのはなぜですか?