[PHP-users 794] タイムアウト設定について

Kei Nishiyama php-users@php.gr.jp
Sat, 21 Jul 2001 12:51:38 +0900


はじめまして。
西山と申します。
趣味と実益を兼ねたPHP作成をやっているのですが、
タイムアウトの設定が上手くいかず、悩んでおります。

やりたいこととしては、
・www.foo.comに対してソケット接続を張る
・2秒以内にネゴシエーション出来なかった場合、あきらめて
 スクリプトを終了する
なのですが、サーバダウン等でwww.foo.comが落ちていた場合など
fsockopenのタイムアウト設定や
set_time_limitによる実行時間の制限をかけてもスクリプトが終了せず、
結果としてWebページが出力されないという現象が起きてしまいます。

テストしているのは以下のようなソースです。
<?
set_time_limit(2);
     $file = fsockopen("www.foo.com", 80, &$errno, &$errstr, 2);
     if (!$file) {
          echo "Socket Error";
     } else {
          echo "Socket Open";
      fclose($file);
     }
?>

接続先のサーバに障害があるときはすばやくあきらめるという
仕組みを作りたいのですが、アドバイスを頂けませんでしょうか?
宜しくお願いいたします。

西山 圭  Nishiyama, Kei
E-mail: nishik@dream.com   OR    nishik@mac.com