2016-06-16 4 views
0

私はローカルWebサーバー(arch linux、php7)から遠隔のWebサーバーに要求していますが、そのネットワークに到達できないため利用できません。この場合、タイムアウトは無視されます(つまり、fsockopenは、指定されたタイムアウト5秒の代わりに約23秒を返します)。fsockopenのタイムアウトはいつ利用できますか?

:以下

$timeout = 5; 
$start = time(); 
dbglog($start . ' timeout ' . $timeout); // 1466081215 timeout 5 
$socket = fsockopen($server,$port,$errno, $errstr, $timeout); 
$end = time(); 
dbglog($end . ' socket done in ' . ($end-$start) . ' seconds'); // 1466081238 socket done in 23 seconds 

official doku for fsockopen状態

を環境に応じて、Unixドメインや接続タイムアウトが利用できない場合があります。

ただし、オプションのタイムアウトが利用できない環境があります。

この問題の最新のドキュメントはどこにありますか?

答えて

0

ソケットの種類によって異なります。ローカルのUNIXソケットでは、すべてがプロセス< -kernel-> processになるので、タイムアウトはあまり意味がありません。間に未知のネットワークはありません。だからそれは失敗するか、成功する。しかし、かかる時間はサーバーの負荷によって異なります。

+0

それは唯一の状況ですか?私は地元のウェブサーバー(arch linux、php7)から、そのネットワークに到達できないため利用できないリモートの要求を出しています。ここでもタイムアウトは無視されるように見えます。 (多分私はその情報で質問を修正する必要があります) –

+0

そしていくつかのコードを共有してください。あなたの問題を含む最小の実例 –

関連する問題