У меня есть строка кода, которая выглядит следующим образом:
stream_select($streamsReadyToRead , $lcNull, $lcNull, 0, 31250);
Согласно руководству , это должно «увидеть, станут ли символы доступными для чтения», и $streamsReadyToRead
должен быть заполнен просто потоками, которые готовы для чтения.тем не менее, я читаю сокеты следующим образом:
foreach ($streamsReadyToRead as $streamToRead)
{
$text = fgets($streamToRead);
if (empty($text))
{
echo "This should never happen, but does!";
}
}
Если я посылаю что-то маленькое через поток, он работает нормально.Когда я набираю более 1000 символов или около того, иногда читается ничего !
Есть что-то, чего я не понимаю?Почему stream_select
говорит мне, что в сокете есть символы, доступные для чтения, когда на самом деле еще ничего не готово для чтения?