Как тайм-аут сеанса Telnet с использованием PHP - PullRequest
1 голос
/ 26 мая 2011

Как отключиться от сеанса Telnet с помощью PHP? Используя этот код ниже, я прочитал вывод Telnet. Но я хочу отключиться от сеанса Telnet, если данные не могут быть получены в переменной $ output в течение 3 секунд.Как я это делаю. Пожалуйста, смотрите мой код ниже:

$fp = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $output=fread($fp,128);//Here we read the output value from socket        
    fclose($fp);                
    echo $output;               
}

1 Ответ

2 голосов
/ 26 мая 2011

Вы работаете под Linux или Windows?В Linux вы можете разветвить приложение, чтобы запустить сеанс telnet параллельно, и чтобы основной поток завершил сеанс через определенное время, если не получен вывод.1003 * на сокете и следите за временем, проведенным без получения каких-либо данных и закрытия сокета через определенное время.

Редактировать: я только что вспомнил, что вам не нужно отслеживать это вручную :)возможно, может сделать что-то вроде

// Set socket timeout to 10 seconds
socket_set_timeout($fp, 10)

...

 $output=fread($fp,128);//Here we read the output value from socket  
if($output == false) {
  // Code to run if timeout occured
  echo "We timed out!";
}
...
...