Есть ли способ прослушивания потока Telnet? - PullRequest
1 голос
/ 17 июня 2011

Мне просто нужен простой способ увидеть, какими были последние две строки в потоке Telnet.Например, если вы можете представить окно терминала, я просто хочу набрать команду, нажать ввод, а затем посмотреть, каков ответ.Пока я могу выполнить команду, но у меня возникают проблемы с оценкой ответа.Вместо того, чтобы просто возвращать две строки ответа, stream_get_line возвращает каждую строку из потока.

Может кто-нибудь предложить функцию или, возможно, лучший способ написать ее?

$con = @pfsockopen("10.30.96.55", 23, $errno, $errstr, 30);

fputs($con, "ipaddress get\r");

while (!feof($con)) { 
    $response = stream_get_line($con, 100, "\n"); 
} 

echo $response;

Может быть, я не до конца понимаю stream_get_line();если я делаю что-то глупое, кто-нибудь, пожалуйста, помогите мне.Спасибо!

1 Ответ

1 голос
/ 20 июня 2011

После дополнительных экспериментов с fgets() я смог достичь желаемого эффекта.

Вместо:

while (!feof($con)) { 
    $response = stream_get_line($con, 100, "\n"); 
} 

Я использовал:

while (($buffer = fgets($con, 5)) !== false) {
    $total .= $buffer;
}
...