fsockopen中的超时何时不可用?

时间:2016-06-16 11:14:22

标签: php timeout environment fsockopen

我正在从本地网络服务器(arch linux,php7)向远程服务器发出请求,因为该网络无法访问而无法访问。这里超时似乎被忽略(即fsockopen需要大约23秒才能返回,而不是给定超时5秒。)

$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域或可选的连接超时可能不可用。

然而,这就是可选超时不可用的环境。

我可以在哪里找到有关此问题的最新文档?

1 个答案:

答案 0 :(得分:0)

取决于套接字类型。对于本地unix套接字,超时没有多大意义,因为所有事情都发生在进程< -kernel->进程中。中间没有未知的网络。无论是失败还是成功。但它花费的时间取决于服务器负载。