За последние 24 часа нас посетили 20260 программистов и 1090 роботов. Сейчас ищут 793 программиста ...

socket_select

Тема в разделе "PHP для профи", создана пользователем Satger, 24 май 2023.

Метки:
  1. Satger

    Satger Активный пользователь

    С нами с:
    19 апр 2020
    Сообщения:
    72
    Симпатии:
    1
    Кто-нибудь знает детали поведения socket_select?

    С одной стороны, по логике вещей socket_select должен срабатывать сразу по событию изменения любого сокета. С другой стороны - возвращаемое количество изменённых сокетов часто больше единицы.

    Вопрос: за какой промежуток времени socket_select собирает изменившиеся сокеты?
     
  2. zer0day

    zer0day Активный пользователь

    С нами с:
    15 ноя 2019
    Сообщения:
    19
    Симпатии:
    0
    Там же есть параметр timeout.
     
  3. Satger

    Satger Активный пользователь

    С нами с:
    19 апр 2020
    Сообщения:
    72
    Симпатии:
    1
  4. zer0day

    zer0day Активный пользователь

    С нами с:
    15 ноя 2019
    Сообщения:
    19
    Симпатии:
    0
    @Satger , тогда не совсем понятен вопрос. Что нужно сделать?
     
  5. Satger

    Satger Активный пользователь

    С нами с:
    19 апр 2020
    Сообщения:
    72
    Симпатии:
    1
    "Вопрос: за какой промежуток времени socket_select собирает изменившиеся сокеты?"

    Если Вы читали документацию, то это, разумеется, не timeout.
    Теоретически, socket_select срабатывает, когда операционная система заполняет буфер сокета и вызывает прерывание. Ну, в общем. Но, очевидно, есть детали, поскольку socket_select нередко возвращает больше одного готового сокета, а вероятность того, что буферы двух сокетов заполнились строго одновременно -- не представляется большой. Т.е., в действительности socket_select срабатывает не строго по заполнению какого-нибудь буфера, а спустя какое-то время, за которое успевает заполнится несколько буферов. Какое это время?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    @Satger Вы предлагаете нам своё прочтение документации, хотя там черным по белому написано что означает таймаут. Выбросьте из своих рассуждений "по логике вещей" и просто читайте что написано буквально.
    --- Добавлено ---
    Функция не собирает изменения за период, но ждёт изменение статуса не более указанного времени. Или бесконечно долго, если не указан таймаут и изменений нет. Да, могут быть зарегистрированы несколько изменений, потому что они могут произойти достаточно быстро - быстрее чем что-то там внутри этого обработчика успеет обернуться.
    --- Добавлено ---
    Буквальный ответ на вопрос "за какой промежуток времени он собирает" — не определено. Но постарается ждать не дольше, чем вы указали в параметрах.
     
    zer0day нравится это.
  7. Satger

    Satger Активный пользователь

    С нами с:
    19 апр 2020
    Сообщения:
    72
    Симпатии:
    1
    Что за фигню ты спорол, чувак?
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Четвертый бан за неадекватное поведение. Зачем вы вообще сюда заходите, чтобы поделиться своим недовольством?