АРМАДА
ПХП5, таймауты в курле/сокетах:
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 18000
Обратиться по нику
# Добавлено:Вт Май 05, 2009 5:33 pmДобавить в избранноеОтветить с цитатой
все работает на PHP/5.2.5

.. у меня несколько вопросов. (сам точно найти и убедиться немогу..)
Подскажите следующие:

---------------------
1) 1 сек это 1000 микросекунд ?

---------------------
при использование модулей/функций:
$ch = curl_init($url);
...
curl_close($ch);"

есть такой параметр -
curl_setopt($ch, CURLOPT_TIMEOUT, 2);

2) я так понимаю в нем, самое маленькое значение это 1, т.е. 1 секунда ?
.. а можно тама как то поставить значение в 100 микросекунд (1/10 сек)

---------------------

.. также при работе, напрямую, с сокетами
$fp = fsockopen($Host, 80, $errno, $errstr, 1);
...
fclose($fp);

3) в функции fsockopen() также, значение менее чем 1 сек на таймаут поставить можно ? - надо 1/10 сек, небольше..


______
спасибо. Wink
http://m.lsl.com/

Dominic
Свой
Зарегистрирован: 04.05.2009
Сообщений: 77
Обратиться по нику
# Добавлено:Вт Май 05, 2009 5:42 pmОтветить с цитатой
IseeDeadPeople писал(а):

---------------------
1) 1 сек это 1000 микросекунд ?

---------------------
2) я так понимаю в нем, самое маленькое значение это 1, т.е. 1 секунда ?
.. а можно тама как то поставить значение в 100 микросекунд (1/10 сек)

:



1) Вроде как 1 сек=1 млн.микросекунд.
2) Там может указываться миллисекунда

kaptmeh +
Опытный
Зарегистрирован: 27.02.2009
Сообщений: 102
Обратиться по нику
# Добавлено:Вт Май 05, 2009 10:49 pmОтветить с цитатой
r5 Физику нужно учить r5 мили 10^-3 микро 10^-6 нано 10^-3
Насчет устновки минимального значения, помоему там устанавливаются только целые числа, тобиш десятичное (как указано у тебя) не получиться. В доке должно быть описание в каких еденицах указывается данный параметр. Также в доке глянь там впринцепи (ВПРИНЦЕПИ я просто в ПыхПыхе не прогал) должны быть функции дублириющие друг друга, отличающиеся названием и минимальной величиной значения (напрмер в си на линухе там было sleep функция задает задержку в милисекундах Sleep задержка в наносекундах).


Насчет вот этого

есть такой параметр -
curl_setopt($ch, CURLOPT_TIMEOUT, 2);

2) я так понимаю в нем, самое маленькое значение это 1, т.е. 1 секунда ?
.. а можно тама как то поставить значение в 100 микросекунд (1/10 сек)

Как вариант можеш сделать цикл в котором будет вызываться эта функция с параметром 0, а после неё будет стоять таймер с нужной тебе задержкой.
Code monkey Razz

creator123
Гуру
Зарегистрирован: 25.07.2007
Сообщений: 1146
Обратиться по нику
# Добавлено:Вт Май 05, 2009 11:01 pmОтветить с цитатой
CURLOPT_TIMEOUT_MS

Like CURLOPT_TIMEOUT but takes number of milliseconds instead. If libcurl is built to use the standard system name resolver, that portion of the transfer will still use full-second resolution for timeouts with a minimum timeout allowed of one second. (Added in 7.16.2)

http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
<----- если понравился пост, жмакай сюды <-----

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 18000
Обратиться по нику
# Добавлено:Ср Май 06, 2009 4:15 pmОтветить с цитатой
Dominic, спасибо..

kaptmeh,
Физику нужно учить

.. поники физику нелюбят.. поники чисто математику учили..

Как вариант можеш сделать цикл в котором будет вызываться эта функция с параметром 0

.. а помоему 0, тама будет значить - максимально допустимое время ответа (по стандартам TCP/IP ~) ?

creator123,
Like CURLOPT_TIMEOUT but takes number of milliseconds instead

спасибо.. тогда, как советуешь, чтоб добиться реального_таймаута менее 1 сек..
ставить CURLOPT_TIMEOUT в 0 и CURLOPT_TIMEOUT_MS в ххх
или CURLOPT_TIMEOUT вообще неназначать, а сразу CURLOPT_TIMEOUT_MS игогокнуть ?
http://m.lsl.com/

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 18000
Обратиться по нику
# Добавлено:Ср Май 06, 2009 4:23 pmОтветить с цитатой
kaptmeh писал(а):

Насчет устновки минимального значения, помоему там устанавливаются только целые числа, тобиш десятичное (как указано у тебя) не получиться. В доке должно быть описание в каких еденицах указывается данный параметр. Также в доке глянь там впринцепи (ВПРИНЦЕПИ я просто в ПыхПыхе не прогал) должны быть функции дублириющие друг друга, отличающиеся названием и минимальной величиной значения (напрмер в си на линухе там было sleep функция задает задержку в милисекундах Sleep задержка в наносекундах).



в понимануале такая строка:
int fsockopen (string [udp://]hostname, int port [, int errno [, string errstr [, double timeout]]])

double тип данных в пхп это ~ 0.0000001 -- 9999999.9999 ?

.. и тама чуть ниже игогокаеться
"The optional timeout can be used to set a timeout in seconds for the connect system call. "

.. подчеркнутое меня и смущает..
http://m.lsl.com/

kaptmeh +
Опытный
Зарегистрирован: 27.02.2009
Сообщений: 102
Обратиться по нику
# Добавлено:Ср Май 06, 2009 5:46 pmОтветить с цитатой
Ну если double то значит можно десятичное значение ставить, то твой вариант скорее всего прокатит, попробуй проверь что получиться
Code monkey Razz

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 18000
Обратиться по нику
# Добавлено:Ср Май 06, 2009 6:30 pmОтветить с цитатой
Код:
define $1 = int fsockopen (string [udp://]hostname, int port [, int errno [, string errstr [, double timeout]]]) ;




kaptmeh писал(а):
Ну если double то значит можно десятичное значение ставить, то твой вариант скорее всего прокатит, попробуй проверь что получиться



хи.. так я то тентуру сети точно знать немогу.. чтоб понять, напр. - 0.05 TO хватит ли..

или.. Пульт_Сокета в нуль будет, всегда.. - если взять TO 0.0000001, за искл. обратной петли ?

+

тогда, если там($1), параметр TO (double timeout) читаеться как СЕК.. то 0.05 уже это не 5 мили.. или 5 микро.... а (0.05*100) часть ПРОЦЕНТА от 1 СЕКУНДЫ.. кстати.. (да?)
http://m.lsl.com/

kaptmeh +
Опытный
Зарегистрирован: 27.02.2009
Сообщений: 102
Обратиться по нику
# Добавлено:Чт Май 07, 2009 12:02 amОтветить с цитатой
Я там сам окончательно запустался ... Вот по сути что тут написано значение должно быть ну никак не double. Нахрена там double не пойму ...

Насчет нуля это я неправ был, думал просто что функция немного дургой смысл в передачи времени как параметра имеет.

CURLOPT_TIMEOUT

Pass a long as parameter containing the maximum time in seconds that you allow the libcurl transfer operation to take. Normally, name lookups can take a considerable time and limiting operations to less than a few minutes risk aborting perfectly normal operations. This option will cause curl to use the SIGALRM to enable time-outing system calls.

CURLOPT_TIMEOUT_MS

Like CURLOPT_TIMEOUT but takes number of milliseconds instead. If libcurl is built to use the standard system name resolver, that portion of the transfer will still use full-second resolution for timeouts with a minimum timeout allowed of one second. (Added in 7.16.2)
Code monkey Razz

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 18000
Обратиться по нику
# Добавлено:Чт Май 07, 2009 2:18 pmОтветить с цитатой
.. да у меня также нет времени чтоб изучать и сравнивать разные мануалы на сходства, чтоб выявить точные тех. специфики.. а низких знаний как Сигналы (Обработка сигналов) работают в никсах - у меня нет..
.. но спасибо, вообщем..
буду пробовать и так и нетак, и уже по тестам/результату смотреть - то ли получаеться или нет..
http://m.lsl.com/
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры