我正在尝试检查端口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端口上?
答案 0 :(得分:2)
1秒的连接超时时间不是很长。即使主机/端口有效,网络延迟也足以触发。我建议至少使用2.5 - 5秒。
此外,您应该检查fsockopen()
的{{1}}而不是FALSE
的结果,以了解它何时失败。
试试这个:
< 1