ожидание ответа функции

Тема в разделе "PHP программирование", создана пользователем maykoff, 9 янв 2008.

Статус темы:
Закрыта.
  1. maykoff

    maykoff Гость

    Код (Text):
    $f = fopen("/dev/xxxx","a+");
    fputs($f,"AT\r\n");
    for(;;)
    {
    $str = fgets($f,8);
    echo "$str";
    if(preg_match("/OK\r\n/",$str)) break;
    }
    fclose($f);
    /dev/xxxx - это компорт, на котором висит GSM-шлюз.
    Проблема в том, что конца файла у $f, похоже , просто нет.
    Прочитав всё что можно, на строке $str = fgets($f,8); зависает, ожидая дальнейшего вывода, которого нет.

    Как вариант - задать (сэмулировать) таймаут для функции, в которую поместить чтение из указателя.
    Но как это сделать - пока не придумал.

    Если у кого какие соображения на этот счёт будут - заранее благодарен .
     
  2. nws

    nws Гость

    auto_detect_line_endings
     
  3. maykoff

    maykoff Гость

    auto_detect_line_endings - это директива, которая включает определение окончания первой строки.
    Мне же надо обработать окончание потока данных, читаемых из указателя.
    feof() не срабатывает, скорее всего из-за отсутствия конца файла.
    fgets просто ждёт следующего байта из указателя, скрипт висит.
     
  4. maykoff

    maykoff Гость

    Неужто больше идей нет?
    Как вариант - получить информацию о сокете - количество невычитанных данных или наличие байта.
    Но как это сделать - ума не приложу.
     
Загрузка...
Похожие Темы - ожидание ответа функции
  1. kipatilnik
    Ответов:
    1
    Просмотров:
    671
  2. mibin
    Ответов:
    1
    Просмотров:
    1.545
  3. cLif
    Ответов:
    3
    Просмотров:
    3.877
  4. cLif
    Ответов:
    0
    Просмотров:
    1.637
  5. cLif
    Ответов:
    0
    Просмотров:
    1.493
Статус темы:
Закрыта.

Поделиться этой страницей