how to set Read timeout ?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I am wanting to write an internet 'server' program. For ease, I want to use  
PHP-CLI with XINET super server.
XINET communicates with the 'server' program via STDIN/STDOUT.

I'm not sure how to communicate with the client this way though.. I can open  
stdin/out as a file, and use read and write operations, as if it were a  
regular file.. however, how can I set read timeouts on file read operations?

Basically what I want is:

- send binary data to the client
- read binary data from client, but with a timeout of 1 second.

So I want a 'blocking' read operation, but one that doesn't block forever,  
but times out.
I know how many bytes I expect when doing a read operation, so perferably I  
tell the read operation how many bytes to read.. if it is not received  
within x seconds, it should time out.

How can this be done in PHP?

I think I have seen examples where somehow the STDIN/OUT is communicated  
with by using socket read/write operations, but I have no clue how this is  
done.. the advantage would be that the socket timeout functions could be  


Re: how to set Read timeout ?

Lisa Pearlson wrote:
Quoted text here. Click to load it

With PHP v > 4.3, you should be able to use stream_set_timeout for this:


Re: how to set Read timeout ?

Hi Lisa,


    set_time_limit(5);            // 5seconds timeout for php

    $start_time = time();
    $valid_read = read_data("$filename");  /* return 0 on error, 1 if
succesful */
    $end_time2 = time() - $start_time;
    echo "total executution time = ".$end_time2;

Good luck !


Quoted text here. Click to load it
Quoted text here. Click to load it

Site Timeline