检查服务fsockopen()

时间:2013-02-28 23:21:39

标签: php fsockopen

我正在尝试检查端口9998上的服务。为此我正在使用 fsockopen()功能。

像这样:

$host = "1.1.1.1";
$port = "9998";
$checkconn = fsockopen($host, $port, $errno, $errstr, 1);
if($checkconn >= 1){
echo 'ok';
} else {
echo "$errstr";
}

它始终返回“连接超时 - 110”,但端口已打开,并且有服务在那里运行。

如果我更改端口(如80),它会返回成功,但为什么不在9998端口上?

1 个答案:

答案 0 :(得分:2)

1秒的连接超时时间不是很长。即使主机/端口有效,网络延迟也足以触发。我建议至少使用2.5 - 5秒。

此外,您应该检查fsockopen()的{​​{1}}而不是FALSE的结果,以了解它何时失败。

试试这个:

< 1