Показать сообщение отдельно

  #10  
Старый 28.04.2007, 00:31
null_access
Участник форума
Регистрация: 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); 
            } 
так вот, такой вод код, очень часто подвисает на неограниченное время, и только поэтому я стартанул эту темку.)
пасибки большое, что пишите свои мысли по этому поводу, пока ещё не сделал что нужно, учусь типа.)
 
Ответить с цитированием