【发布时间】:2011-11-18 18:51:58
【问题描述】:
我在 localhost(127.0.0.1) 上通过端口 11300 通过 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。
错在哪里? 如何在命令行中得到类似结果的结果?
【问题讨论】:
-
也许你需要发送
\n或类似的东西来告诉对方你已经做了一些输入? -
我更正为:echo sendToSocket('127.0.0.1', 11300, "stats\r\n");它正在工作,一切正常,非常感谢。
-
请将其添加为下面的答案。然后,您可以选择它作为答案,将这个问题标记为已解决。谢谢!