ソケット・サブルーチン
目的
通信のエンドポイントを作成し、記述子を返します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/socket.h>
#include <sys/socketvar.h>
int socket ( AddressFamily, Type, Protocol)
int AddressFamily, Type, Protocol;
説明
Socket サブルーチンは、指定された AddressFamily および指定されたタイプにソケットを作成します。 プロトコルは、システムによって指定または割り当てることができます。 プロトコルが未指定 (値 0) のままである場合、システムは、要求されたソケット・タイプをサポートするために使用できるアドレス・ファミリー内のプロトコルから適切なプロトコルを選択します。
ソケット サブルーチンは、ソケット上で作動する後続のサブルーチンで使用できる記述子 (整数) を戻します。
ソケット・レベル・オプションは、ソケット操作を制御します。 getsockopt および setsockopt サブルーチンは、 /usr/include/sys/socket.h ファイルに定義されているこれらのオプションを取得および設定するために使用されます。
パラメーター
| 項目 | 説明 |
|---|---|
| AddressFamily | 後のソケット操作で指定されたアドレスが解釈されるアドレス・ファミリーを指定します。 /usr/include/sys/socket.h ファイルには、アドレス・ファミリーの定義が入っています。 よく使用されるファミリーは以下のとおりです。
|
| Type | 通信のセマンティクスを指定します。 /usr/include/sys/socket.h ファイルは、ソケット・タイプを定義します。 オペレーティング・システムは、以下のタイプをサポートします。
|
| プロトコル | ソケットで使用する特定のプロトコルを指定します。 プロトコル パラメーターに 0 を指定すると、 ソケット サブルーチンはデフォルトで、要求されたタイプの戻りソケットの標準プロトコルになります。 SCTP ソケットの場合、プロトコル・パラメーターは IPPROTO_SCTP です。 RDS ソケットの場合、 Protocol パラメーターは BYPASSPROTO_RDS です。 |
戻り値
正常終了すると、 ソケット サブルーチンは整数 (ソケット・ディスクリプター) を戻します。
ソケット サブルーチンが失敗すると、サブルーチン・ハンドラーは以下の関数を実行します。
- 呼び出したプログラムに-11を返す。
- 特定のエラーを示すエラー・コードを エラー番号 グローバル変数に移動します。 エラー番号 変数の詳細については、 エラー通知オブジェクト・クラスを参照してください。
エラー・コード
以下のいずれかのエラーが発生すると、 ソケット サブルーチンは失敗します。
| エラー | 説明 |
|---|---|
| EAFNOSUPPORT | 指定されたアドレス・ファミリーのアドレスは、このソケットでは使用できません。 |
| EMFILE | プロセスごとの記述子テーブルがいっぱいです。 |
| ENOBUFS | 呼び出しを完了するための十分なリソースがシステムにありませんでした。 |
| ESOCKTNOSUPPORT | 指定されたアドレス・ファミリー内のソケットはサポートされていません。 |
例
以下のプログラム・フラグメントは、 ソケット サブルーチンを使用して、マシン上で使用するデータグラム・ソケットを作成する方法を示しています。
s = socket(AF_UNIX, SOCK_DGRAM,0);実行の特性
ソケット・サブルーチンは、基本オペレーティング・システム (BOS) ランタイムの一部です。
ソケット・アプリケーションは、 COMPAT_43 を定義してコンパイルすることができます。 これにより、 sockaddr 構造体は BSD 4.3 と互換性を持ちます。 詳しくは、 socket.hを参照してください。