array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.socket-set-option.php', 1 => 'socket_set_option', ), 'up' => array ( 0 => 'ref.sockets.php', 1 => 'ソケット 関数', ), 'prev' => array ( 0 => 'function.socket-set-nonblock.php', 1 => 'socket_set_nonblock', ), 'next' => array ( 0 => 'function.socket-setopt.php', 1 => 'socket_setopt', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/sockets/functions/socket-set-option.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
socket_set_option — ソケットのオプションを設定する
socket_set_option() 関数は、level
が指すプロトコルレベルでソケット socket
のオプション
option
に値 value
を設定します。
socket
socket_create() あるいは socket_accept() で作成した Socket クラスのインスタンス。
level
level
パラメータは、オプションのプロトコルレベルを指定します。
例えば、オプションをソケットレベルで設定するには
level
パラメータに SOL_SOCKET を指定します。
TCP のようなそれ以外のレベルの場合、そのレベルのプロトコル番号を指定します。
プロトコル番号は getprotobyname()
関数を使用して取得可能です。
option
使用可能なソケットオプションは socket_get_option() 関数と同じです。
value
オプションの値。
バージョン | 説明 |
---|---|
8.0.0 |
socket は、Socket クラスのインスタンスになりました。
これより前のバージョンでは、リソース型でした。
|
例1 socket_set_option() の例
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!is_resource($socket)) {
echo 'ソケットを作成できません: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'ソケットのオプションを設定できません: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_bind($socket, '127.0.0.1', 1223)) {
echo 'ソケットをバインドできません: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
if ($rval === false) {
echo 'ソケットのオプションを取得できません: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
echo 'SO_REUSEADDR がソケットに設定されています!' . PHP_EOL;
}
?>