Internetドメイン(AF_INET)または Unixドメイン(AF_UNIX、TCPまたは
UDPを使用)にてストリーム接続を初期化します。Internetドメインの場合、
hostname
のポート
port
へのTCPソケット接続がオープンされます。 UDP接続を行う際には、
udp://hostname
のよう に明示的にプロトコルを指定する必要があります。Unixドメインの場合、
hostname
はソケットへのパスとして使用され、
port
はこの場合0とする必要があります。 オプションの
timeout
により接続システムコール がタイムアウトするまでの秒数を指定することが可能です。
注意 ソケット経由でデータを読み書きする際のタイムアウトを設定する必要がある場合、 fsockopen() の timeout パラメータは、 ソケットに接続する間のみ適用されるため、 socket_set_timeout() を使用してください。
PHP 4.3.0以降、OpenSSLサポートを有効にしてコンパイルした場合、
hostname
の前に'
ssl://
' または '
tls://
' を付加することにより、TCP/IP経由でリモートホストに
接続する際にSSLまたはTLSクライアント接続を使用することができます。
fsockopen()
は、ファイルポインタを返します。 このファイルポインタは、 (
fgets()
,
fgetss()
,
fputs()
,
fclose()
,
feof()
のような) 他のファイル関数で使用可能です。
コールに失敗した場合には
FALSE
が返され、オプションの引数
errno
および
errstr
が指定されている場合、システムコール
connect()
で生じた実際のシステムレベルエラーを示すように設定されます。
errno
は
0
なのに関数が
FALSE
を返す場合、
connect()
をコールする前にエラーを発生したことを示します。 この場合、おそらくはソケットの初期化に原因があります。引数
errno
および
errstr
は常に参照渡しであることに注意してください。
環境によってはUNIXドメインまたはオプションの接続タイムアウトは利用 できません。
ソケットはデフォルトでブロックモードで開かれます。
socket_set_blocking()
を使用して、 非ブロックモードに切換えることができます。
警告 |
|
注意 timeout は PHP 3.0.9 でサポートされまし た。また、UDP のサポートは PHP 4で追加されました。