Don't know if this will help, but can you confirm whether your while loop is
failing on the first time through or a subsequent time through (perhaps by
echoing something each time through)?
No, it doesn't fail the first time. It runs through the loop several times, and fails ONLY once it timesout (because the server is sending no more data). Then, the next time it loops, it fails again.
That said, I am going to shortly repost the program flow (in simplified form), so you guys can see the issue. (Someone kindly pointed out that as this thread has grown, the original issue is no longer clear.) Thanks guys for helping.
...rene
Warren Vail
-----Original Message----- From: René Fournier [mailto:[EMAIL PROTECTED] Sent: Thursday, May 13, 2004 5:13 PM To: Vail, Warren Cc: php Subject: Re: [PHP] Why would a socket be unavailable?
Hi Warren,
There is only one process, and I'm sure I have only one IP address. It's just one script that loops. At the top of the loop, it waits to socket_read some data. If no data appears, I want it to timeout so that it can send the server a ping (which I must do). THAT is where the problem starts. If I don't bother making the socket_read timeout, the loop works beautifully-it just waits and waits at socket_read, and then when data appears, it does its thing, then goes back to the top of the loop and waits again. It's when I set the timeout option, and then it DOES actually time out (because there is no data for several seconds), that it no longer is able to socket_read data from the connection.
.Rene
On Thursday, May 13, 2004, at 05:57 PM, Vail, Warren wrote:
So you have two processes running, one which is waiting on the socket connection and another, which we have seen, to establish the connection.
Doesn't sound to me to be related to performing blocked/non-blocked connections.
What are the odds that you have multiple IP addresses on your machine? Can you confirm that both of your processes are using the same IP address (or the ip address of the other process)?
Warren Vail
-----Original Message----- From: René Fournier [mailto:[EMAIL PROTECTED] Sent: Thursday, May 13, 2004 4:49 PM To: Vail, Warren Cc: php Subject: Re: [PHP] Why would a socket be unavailable?
There is no firewall-it's all running locally, on my iBook (with
Firewall off). You know, I really wish it WAS the firewall. :-) I
really can't believe this little problem I'm encountering is because
of some bug in the Socket library. I mean, what I'm doing is so simple,
and I'm sure hundreds of other PHP programmers have done this before,
like, a million times. The whole script is actually very simple:
Enter loop If data is received, handle it If data is not received in several seconds, send server a ping
.Rene
On Thursday, May 13, 2004, at 05:40 PM, Vail, Warren wrote:
There is another kind of blocking you could be running into (other
than the type mentioned in the manual) and it was eluded to before.
What are the
odds you are going through a firewall to get to the server. Firewalls
will
reject attempts to connect to unauthorized sockets on protected
machines.
Warren Vail
-----Original Message----- From: René Fournier [mailto:[EMAIL PROTECTED] Sent: Thursday, May 13, 2004 4:24 PM To: [EMAIL PROTECTED] Cc: php Subject: Re: [PHP] Why would a socket be unavailable?
On Thursday, May 13, 2004, at 05:13 PM, Daniel Clark wrote:
http://www.php.net/manual/en/ref.sockets.ph
Yes, I've read that page... many times. It has not helped me. That is why I am posting my problem here, in that hopes that someone can help.
(I don't mean to be completely helpless, but I just don't yet understand blocking/non-blocking sockets, and the parameters associated, since they are not well-documented. Someone said I shouldn't complain about this-and I'm not-since the functions are marked "Experimental". But this is precisely why I'm posting the question here.)
.Rene
I just read something about sock warnings this morning. It said sometimes they drop off, and to ignore the warnings, but capture the errors.
I get this output:
PHP Warning: socket_read() unable to read from socket [35]: Resource temporarily unavailable in /Users/rene/Sites/gpspolice/titan/cr.php on line 63
From this code:
do { socket_set_block($socket); socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,$timeout); while(($buf = socket_read($socket,128,PHP_BINARY_READ)) !== false) {
[...]
And it's failing at "while". Any ideas?
...Rene
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php