socket(3SOCKET) を呼び出して、指定したドメインに指定したタイプのソケットを作成します。プロトコルを指定しないと、システムは指定されたソケットタイプをサポートしているプロトコルをデフォルトとして使用します。ソケットハンドル (記述子) が戻されます。
リモートプロセスは、アドレスが結合されるまでソケットを識別する方法を持ちません。通信するプロセスは、アドレスによって接続します。UNIX ドメインでは、接続は通常は 1 つまたは 2 つのパス名から構成されます。インターネットドメインでは、接続はローカルアドレス、リモートアドレス、ローカルポート、リモートポートから構成されます。ほとんどのドメインでは、接続は一意でなければなりません。
bind(3SOCKET) を呼び出して、パスまたはインターネットアドレスをソケットに結合します。bind(3SOCKET) を呼び出すには、ソケットのドメインに応じて、3 つの異なる方法があります。パスが 14 文字以下の UNIX ドメインソケットでは、次のようにします。
#include <sys/socket.h> ... bind (sd, (struct sockaddr *) &addr, length); |
UNIX ドメインソケットのパスが 14 文字よりも多くの文字を必要とする場合は、次のようにします。
#include <sys/un.h> ... bind (sd, (struct sockaddr *) &addr, length); |
インターネットドメインソケットでは、次のようにします。
#include <netinet/in.h> ... bind (sd, (struct sockaddr *) &addr, length); |
UNIX ドメインで名前を結合すると、名前付きソケットがファイルシステムに作成されます。ソケットを削除するには、unlink(2) または rm(1) を使用します。