Извините за продвинутый, поскольку я новичок в кодировании и PHP.Я получаю данные UDP каждые пару минут.Затем я пытаюсь использовать цикл while для проверки данных, а затем выводить что-то в зависимости от того, что это за данные.Через определенное время я хочу выводить что-то еще из базы данных, пока не поступят новые данные. Проблема в том, что когда он снова проверяет сокет, он ожидает поступления новых данных. Я хочу, чтобы вместо этого он продолжал выводить данные избаза данных каждые x секунд, пока не поступят новые данные из сокета.
Данные представлены фрагментами со случайным количеством символов.В настоящее время, чтобы получить одну читаемую строку, я использую MSG_WAITALL для получения всех данных, которые я могу использовать, потому что MSG_DONTWAIT дает мне странные результаты.Я предполагаю, что MSG_WAITALL - это то, что заставляет его останавливаться, потому что оператор if, который выводит эхо из базы данных, выполняется только один раз, пока не поступят новые данные из сокета.
Надеюсь, я объяснил это достаточно хорошо.Что еще я могу попробовать?
while(1)
{
$r = socket_recvfrom($sock, $buf, 12, MSG_WAITALL, $remote_ip,
$remote_port);
$word = $word.$buf;
$startTime = date("Y-m-d H:i:s");
if($word = example1)
{
//do this
//add time to timer
}
elseif($word = example2)
{
//do this
//add time to timer
}
else(currentTime > timer)
{
//echo from database
//add time to timer
}
}