我有问题通过端口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。
错误在哪里? 如何在命令行中获得结果?
答案 0 :(得分:0)
此脚本仅从响应中读取一行。
$response .= fgets($fp);
必须替换为
之类的东西 while (!feof($fp)) {
$response .= fgets($fp);
}
答案 1 :(得分:0)
我将代码更正为:
echo sendToSocket('127.0.0.1',11300,“stats \ r \ n”);
它正在工作,一切正常。
注意:如果您将单引号作为输出发送,则代码不起作用。