Что делает параметр $ tv_sec или $ tv_usec в качестве параметра? - PullRequest
2 голосов
/ 20 марта 2012

Я создал простой скрипт сокета 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: без описания

1 Ответ

1 голос
/ 20 марта 2012

Параметр $ tv_usec используется, когда вы хотите, чтобы функция socket_select () отключалась по истечении заданного количества микросекунд.Это, например, полезно, если вы хотите, чтобы время выбора превышало 1 секунду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...