システムインタフェース

ソケットの作成と名前の指定

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) を使用します。