it-master
Новичок
Сокет демон, чтение с таймаутом
Я написал демон, который обрабатывает запросы клиентов в цыкле по одному, по типу HTTP сервера, но появилась проблема при чтении данных socket_read. Если клиент подключился и ничего не передает, то сервер просто ждет его, тем самым не давая шансов следующим клиентам быть обработаными.
Пробовал использовать stream_set_timeout($fp,2) вместе с stream_set_blocking($fp,"FALSE") но таймаута не происходит.
Смотрел в сторону socket_select, но не разобрался в его преимуществах.
Вопрос: как можно установить таймаут на чтение из сокета клиента?
-~{}~ 01.09.06 07:37:
Логика скрипта:
Настраиваем сокет
while(true) {
socket_accept
socket_read
обрабатываем запрос
socket_shutdown
socket_close
}
Я написал демон, который обрабатывает запросы клиентов в цыкле по одному, по типу HTTP сервера, но появилась проблема при чтении данных socket_read. Если клиент подключился и ничего не передает, то сервер просто ждет его, тем самым не давая шансов следующим клиентам быть обработаными.
Пробовал использовать stream_set_timeout($fp,2) вместе с stream_set_blocking($fp,"FALSE") но таймаута не происходит.
Смотрел в сторону socket_select, но не разобрался в его преимуществах.
Вопрос: как можно установить таймаут на чтение из сокета клиента?
-~{}~ 01.09.06 07:37:
Логика скрипта:
Настраиваем сокет
while(true) {
socket_accept
socket_read
обрабатываем запрос
socket_shutdown
socket_close
}