socket_get_option() 関数は、ソケット socket のオプション optname の値を取得します。socket_get_option() は、失敗した場合に FALSE を返します。
level パラメータは、オプションのプロトコルレベルを 指定します。例えば、オプションをソケットレベルで取得するには level パラメータに SOL_SOCKET を指定します。 TCP のようなそれ以外のレベルの場合、そのレベルのプロトコル番号を 指定します。プロトコル番号は getprotobyname() 関数を使用して取得可能です。
表 1. 使用可能なソケットオプション
オプション | 説明 |
---|---|
SO_DEBUG | デバッグ情報を記録するかどうかを報告します。 |
SO_ACCEPTCONN | ソケットの listen が有効かどうかを報告します。 |
SO_BROADCAST | ブロードキャストメッセージの送信がサポートされているかどうかを報告します。 |
SO_REUSEADDR | ローカルアドレスが再使用可能するかどうかを報告します。 |
SO_KEEPALIVE | 定期的なメッセージの送信によって接続がアクティブになっているかどうかを 報告します。もしソケットがこれらのメッセージに応答できなかった場合、 接続は崩壊し、ソケットへの書き込みを行うと SIGPIPE シグナルを 受け取ります。 |
SO_LINGER | データが存在する際に、socket_close() の後で socket が残り続けるかどうかを報告します。 |
SO_OOBINLINE | socket が帯域外のデータをインラインに 残し続けるかを報告します。 |
SO_SNDBUF | 送信バッファサイズの情報を報告します。 |
SO_RCVBUF | 受信バッファサイズの情報を報告します。 |
SO_ERROR | エラーステータスに関する情報を報告し、それをクリアします。 |
SO_TYPE | socket の型を報告します。 |
SO_DONTROUTE | 送信メッセージがルータを越えるかどうかを報告します。 |
SO_RCVLOWAT | socket の入力操作を行う際の最小バイト数 (デフォルトは 1)を報告します。 |
SO_RCVTIMEO | 入力操作のタイムアウト値を報告します。 |
SO_SNDLOWAT | socket の出力操作を行う際の最小バイト数 を報告します。 |
SO_SNDTIMEO | 出力関数がフロー制御のためにブロックするタイムアウト値を報告します。 |
注意: この関数は、PHP 4.3.0 より前のバージョンでは socket_getopt() と呼ばれていました。