Re: re:Timing out an fgets

From: Date: Fri, 18 Aug 2000 02:12:12 +0000
Subject: Re: re:Timing out an fgets
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-12394@lists.php.net to get a copy of this message
On Fri, 18 Aug 2000, David Robley wrote: > Date: Fri, 18 Aug 2000 11:30:53 +0930 (CST) > From: David Robley <huntsman@www.nisu.flinders.edu.au> > To: joe.blythe@binarylogic.com.au > Cc: php-general@lists.php.net > Subject: Re: [PHP] re:Timing out an fgets > > On 17 Aug, Joseph H Blythe wrote: > > Joseph H Blythe wrote: > > > >> Hey php'ers > >> > >> I am currently developing a client for a server application, it is near > >> completion but I still have to cover a few error conditions one being no > >> response from the server at all. > >> > >> The application im using has provision to test this situation and allows > >> you to send packets to it but will not respond at all. > >> > >> My problem is I am using fgets to receive a result from the server, but > >> every time I test for this condition it just sits there trying and > >> eventually ( after about 5 mins ) says page cannot be displayed. > >> > >> My question is how would I go about setting a time-out for the fgets > >> command so that I may retry a number of times before sending a error > >> message. > >> > >> I have tried something like this, of course I have already opened a > >> socket and $pck would hold the info im trying to send. > >> > >> ... > >> > >> $i = 0; > >> while( !fgets($fp, 1024) ) { > >> if ( $i <= 2 ) { > >> sleep(10); > >> fputs($fp, $pck); > >> or die("Error connecting to remote host"); > >> } else { > >> die("Maximum retry count reached"); > >> } > >> if ( fgets($fp, 1024) ) { > >> break; > >> } else { > >> $i++; > >> continue; > >> } > >> } > >> > >> ... > >> > >> The above code would handle the retries, but not a timeout as fgets just > >> seems to keep trying until the browser timesout the page? > >> > > > > I may have found a possible soultion in php's connection handling > > functions, but I can't seem to get them to work! > > > > set_connection_timeout(10); > > > > while ( connection_timeout() == 0 ) { > > fgets($fp,1024); > > or die("No response"); > > if ( connection_timeout() == 1 ) { > > die("Connection Timed Out"); > > } > > } > > > > Now this don't work either my script refuses to timeout even with the > > default timeout of 30 seconds, also I am unsure of what value connection > > timeout is returning is it 0 for false and 1 for true or TRUE/FALSE???? > > > > Anyways there must be someway to tell the script to timeout, if I can get > > this to work I can also run a function when the user aborts using the stop > > button which will come in handy with connection_aborted. > > > > Please help! > > > > Regards, > > > > Joseph Blythe > > The manual says that connection_timeout returns true if the script has > timed out. But in your example above, shouldn't you be setting > max_execution_time to reset the timeout? I can't see a > set_connection_timeout anywhere in the docs? > > Also, if you are using fsockopen, is the timeout argument not > functional? > > Some theoretical thoughts from someone who has never used this stuff :-) > > Cheers > -- > David Robley | WEBMASTER & Mail List Admin If I remember right, the timeout value on fsockopen DOES work. -jeremy brand _______________________________________________________________________ GnuPG Fingerprint: 9F5E 95E0 1CC2 E054 84EA 6099 8ACD 9DBA D2C0 5EA9 _____ http://www.jeremybrand.com/ for more... _________________________

« previous php.general (#12394) next »