
28.04.2007, 00:31
|
|
Участник форума
Регистрация: 31.01.2005
Сообщений: 151
С нами:
11195807
Репутация:
11
|
|
Сообщение от Developer
По сабжу:
Таймаут на функцию - значит таймаут на соединение сокета. Функция fsockopen принимает пятый параметр timeout, по истечении которого хост считается мертвым.
Это по теории так, а на практике я имею такую ситуацию, что такой вот код являющийся частью функции:
PHP код:
$fp=fsockopen($HostName, $HostPort, $errno, $errstr, 30);
if (!$fp) //Если соединение прошло неуспешно, выводим сообщение об ошибке ставшей причиной проблемы.
{
echo "$errstr ($errno)<br />\n";
}
else //Если соединение прошло успешно, то формируем пакет запрса к серверу.
{
$out = "GET .......\r\n";
................
stream_set_timeout($fp, 30); //Выставляем таймау на операции с сервером. Если в течение заданного отрезка времени не происходит никакого
//обмена данными, то считаем чо соединение подвисло и обрываем его.
fputs($fp, $out); //Передаем ранее сформированный пакт данных серверу.
//получаем ответ сервера в переменную $Page
$Page="";
while (!feof($fp))
{
$Page.=fgets($fp);
}
так вот, такой вод код, очень часто подвисает на неограниченное время, и только поэтому я стартанул эту темку.)
пасибки большое, что пишите свои мысли по этому поводу, пока ещё не сделал что нужно, учусь типа.) 
|
|
|