PHP fsockopen脚本在ajax上超时,但几乎立即在命令行中完成

时间:2015-07-21 11:08:21

标签: php ajax fsockopen

我试图在另一台服务器上创建一个网页,在该服务器上将显示我自己的服务器的状态。 我正在使用像这样的AJAX请求:

$.ajax({
    url: 'status.php',
    data: {ip:address},
    success: function(data){
        //do stuff
    },
    dataType:'text'
});

将服务器的ip-address发送到status.php脚本,如下所示:

if($_GET['ip']){
    $ip = $_GET['ip'];
    //var_dump($_GET['ip']); 
    $port = 64738;
    $up = fsockopen("tcp://$ip", $port, $errno, $errstr, 30);   
    if($up){   
        echo "success";   
    } 
    else{ 
        echo "failure";
} 

我重写了这个脚本:

$ip = "<ip_of_my_server>"; 
    $port = 64738;
    $up = fsockopen("tcp://$ip", $port, $errno, $errstr, 5);   
    if($up){   
        echo "success";   
    } 
    else{ 
        echo "failure";
    }

所以我可以从命令行使用它来进行测试。

第二个脚本可以完美地运行,几乎可以立即从命令行运行并输出&#34; success&#34;。

但是对于AJAX请求,第一个和第二个脚本都会给出errornr。 30秒后fsockopen输出110(连接超时),因此输出&#34;失败&#34;。

可能是什么原因? 提前谢谢!

0 个答案:

没有答案