我对PHP并不熟悉,但已经能够运行一个脚本来检查某个本地网络计算机是否打开了某个端口。 缺点是有些电脑处于离线状态,我无法将 fsockopen 功能的超时时间降低1秒(0.001秒就够了)
我找到了* stream_set_timeout *函数,但似乎无法让它工作。 我很确定它只是在错误的地方,希望有人能指出应该去哪里。
现在我收到了这个错误:
警告:stream_set_timeout()期望参数1是资源, 给定布尔值
片段:
$timeout = 1000;
foreach ($farm as $pc){
$check = @fsockopen($pc, $port);
stream_set_timeout($check,0,$timeout);
if (is_resource($check))
{
echo $pc . " online";
fclose($check);
}
else
{
echo $pc . " offline";
}
}
目前的解决方案:
foreach ($farm as $pc){
$check = @fsockopen($pc,$port,$errCode,$errStr,0.001);
if (is_resource($check))
{
echo $pc . " online";
fclose($check);
}
else
{
echo $pc . " offline";
}
}