我正在从本地网络服务器(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域或可选的连接超时可能不可用。
然而,这就是可选超时不可用的环境。
我可以在哪里找到有关此问题的最新文档?
答案 0 :(得分:0)
取决于套接字类型。对于本地unix套接字,超时没有多大意义,因为所有事情都发生在进程< -kernel->进程中。中间没有未知的网络。无论是失败还是成功。但它花费的时间取决于服务器负载。