ソケットコンテキストオプション
ソケットコンテキストオプション — ソケットコンテキストオプション一覧
説明
ここでは、ソケット越しに動作するラッパー
すなわち tcp、http
あるいは ftp でサポートされるオプションを扱います。
オプション
bindto
-
PHP がネットワークにアクセスする際の IP アドレス
(IPv4 あるいは IPv6 のどちらか)やポート番号を指定する際に使用されます。
書式は、IPv4 アドレスの場合は ip:port、
IPv6 アドレスの場合は [ip]:port です。
IP やポート番号に
0 を指定すると、それをシステムに自動的に設定させる
ことができます。
注意:
FTP の通常の操作では 2 つのソケット接続を使用するので、
このオプションでポート番号を指定することができません。
backlog
-
ソケットのリスンキューから出て行く接続の数を制限します。
注意:
stream_socket_server() でのみ有効です。
ipv6_v6only
-
Overrides the OS default regarding mapping IPv4 into IPv6.
注意:
This is important in particular when trying to listen on IPv4 addresses
separately while there exists a binding on [::].
stream_socket_server() でのみ有効です。
so_reuseport
-
Allows multiple bindings to a same ip:port pair, even from separate processes.
注意:
stream_socket_server() でのみ有効です。
so_broadcast
-
Enables sending and receiving data to/from broadcast addresses.
注意:
stream_socket_server() でのみ有効です。
例
例1 基本的な bindto
の使用例
<?php
// IP アドレス '192.168.0.100' でインターネットに接続する
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);
// IP アドレス '192.168.0.100' とポート番号 '7000' でインターネットに接続する
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);
// IPv6 アドレス '2001:db8::1' とポート番号 '7000' でインターネットに接続する
$opts = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);
// ポート番号 '7000' でインターネットに接続する
$opts = array(
'socket' => array(
'bindto' => '0:7000',
),
);
// コンテキストを作成し…
$context = stream_context_create($opts);
// …そしてデータを取得するためにそれを使用する
echo file_get_contents('http://www.example.com', false, $context);
?>