通过 PHP 在 localhost(127.0.0.1) 上通过端口 11300 使用 telnet
我在端口 11300 上通过 PHP 在 localhost(127.0.0.1) 上使用 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。
错误在哪里? 如何在命令行中获得类似结果的结果?
I have problem to use telnet via PHP on localhost(127.0.0.1) over port 11300
I haven't been using this before, so help would be great.
Here is the code:
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');
I got the "ERROR", thats means that fgets($fp); doesn't work for me.
When typing in Command Line: telnet 127.0.0.1 11300 everything is OK, so then I can type command "stats" in order to get the result. I am using Ubuntu.
Where is the mistake?
How to get result like result in Command Line ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该脚本仅读取响应中的一行。
必须用类似的东西替换
This script reads only one line from the response.
have to be replaced with something like
我将代码更正为:
echo sendToSocket('127.0.0.1', 11300, "stats\r\n");
它正在工作,一切都很好。
注意:如果您发送单引号作为输出,则代码不起作用。
I corrected code to:
echo sendToSocket('127.0.0.1', 11300, "stats\r\n");
and it's working, everything is OK.
Note: the code doesn't work if you send single quote as output.