socket(3SOCKET) 呼び出しは、指定されたファミリに、指定されたタイプのソケットを作成します。
s = socket(family, type, protocol);プロトコルが指定されないと (値が 0)、システムは要求されたソケットタイプをサポートするプロトコルを選択します。ソケットハンドル (ファイル記述子) が返されます。
ファミリは、sys/socket.h で定義されている定数の 1 つで指定されます。AF_suite という名前の定数は、表 2-1 に示すように、名前を解釈する場合に使用するアドレス書式を指定します。
表 2-1 プロトコルファミリ
AF_APPLETALK |
Apple Computer, Inc. の Appletalk ネットワーク |
AF_INET6 |
IPv6 と IPv4 用のインターネットファミリ |
AF_INET |
IPv4 専用のインターネットファミリ |
AF_PUP |
Xerox Corporation の PUP インターネット |
AF_UNIX |
Unix ファイルシステム |
ソケットタイプは、sys/socket.h で定義されています。これらのタイプ (SOCK_STREAM、SOCK_DGRAM、または SOCK_RAW) は、AF_INET6、AF_INET、および AF_UNIX でサポートされます。次の文は、インターネットファミリでストリームソケットを作成します。
s = socket(AF_INET6, SOCK_STREAM, 0);
この呼び出しの結果、基本的な通信を提供する TCP プロトコルを使用したストリームソケットが作成されます。通常は、デフォルトプロトコル (引数 protocol が 0) を使用してください。「拡張機能」で説明しているように、デフォルト以外のプロトコルも指定できます。