通过端口11300在localhost(127.0.0.1)上通过PHP使用telnet

时间:2011-09-16 15:02:16

标签: php localhost telnet

我有问题通过端口11300

在localhost(127.0.0.1)上通过PHP使用telnet

我之前没有使用过这个,所以帮助会很棒。

以下是代码:

function sendToSocket($host, $port, $out){
    if(!function_exists('fsockopen'))
        return 'f() doesnt exist !';
    $response = "";
    $fp  = fsockopen($host, $port, $errno, $errstr);
    if(!$fp){
        $response .= "$errstr ($errno)<br/>";
    }else{
        fwrite($fp, $out);
        $response .= fgets($fp);
        fclose($fp);
    }

    if($response)
        return $response;
    else
        return "ERROR";
}
echo sendToSocket('127.0.0.1', 11300, 'stats');

我得到了“错误”,这意味着fgets($ fp);不适合我。

在命令行输入时:telnet 127.0.0.1 11300一切正常,所以我可以输入命令“stats”以获得结果。我正在使用Ubuntu。

错误在哪里? 如何在命令行中获得结果?

2 个答案:

答案 0 :(得分:0)

此脚本仅从响应中读取一行。

$response .= fgets($fp);

必须替换为

之类的东西
 while (!feof($fp)) {
  $response .= fgets($fp);
}

答案 1 :(得分:0)

我将代码更正为:

echo sendToSocket('127.0.0.1',11300,“stats \ r \ n”);

它正在工作,一切正常。

注意:如果您将单引号作为输出发送,则代码不起作用。