Я создал простой скрипт сокета php 5.3, где серверный скрипт вызывает ...
socket_select($read_set, $write_set, $exception_set, 2);
... в цикле. Я использую неблокирующие сокеты, и скрипт выполняется на машине с Win7.
Проблема: эта функция блокирует скрипт на 2 секунды. Это означает, что 4-й параметр ($ tv_sec) действительно вызывает этот блок.
Мой вопрос: в чем разница между $tv_sec
или $tv_usec
? Что делает $tv_usec
? 1011 *
Описание функции в руководстве по php:
socket_select(array&$read, array&$write, array&$ex, int $tv_sec[,int $tv_usec=0])
tv_sec: tv_sec и tv_usec вместе образуют параметр времени ожидания. Тайм-аут - это верхняя граница количества времени, прошедшего до возврата из socket_select (). Значение tv_sec может быть равно нулю, что приведет к немедленному возврату socket_select (). Это полезно для опроса. Если tv_sec НЕДЕЙСТВИТЕЛЕН (без тайм-аута), socket_select () может блокироваться бесконечно.
tv_usec: без описания