Bug #14740 Updated: fsockopen() won't timeout

From: Date: Mon, 28 Jan 2002 17:19:58 +0000
Subject: Bug #14740 Updated: fsockopen() won't timeout
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-78322@lists.php.net to get a copy of this message
ID: 14740
Comment by: korpse@p16.pub.ro
Old Reported By: l0cky@sn0wmen.fsnet.co.uk
Reported By: korpse@p16.pub.ro
Status: Open
Bug Type: Sockets related
Operating System: Win98 and Win2k
PHP Version: 4.1.0
New Comment:

well, me too!
os: win xp professional
apache 1.3.22
php 4.1.1 (win32)

the code:

    $fp = fsockopen($hname,139, &$errno, &$errstr,3);
    if(!$fp) echo "$hname is not responding on port 139 ";
    else {
        echo "$hname is alive";
        fclose($fp);
    }

the problem:
    the 3 secs timeout does not work


Previous Comments:
------------------------------------------------------------------------

[2001-12-29 09:20:52] l0cky@sn0wmen.fsnet.co.uk

ok to clarify.. seems like this is a common mistake

fsockopen() times out ok if the server doesn't exist.  The problem
occurs when the server doesn't understand what is sent to it afterwards
and stalls for a reply (ie, if the port is now used by another
service).

I'll check the bugs for fwrite(), fgets() etc

------------------------------------------------------------------------

[2001-12-28 12:33:49] l0cky@sn0wmen.fsnet.co.uk

A simple query to a server with fsockopen() won't timeout if the
requested server is
down.

$serverquery = fsockopen($host, $port, &$errno, &$errstr, $timeout);

The operation times out first (120 seconds), even if $timeout is as low
as 1 second; it
works fine if I remove unavailable servers from the query list. 
Sometimes the server
crashes if I try the function again before the last operation times
out.

------------------------------------------------------------------------

[2001-12-28 12:31:36] l0cky@sn0wmen.fsnet.co.uk

A simple query to a server with fsockopen() won't timeout if the
requested server is down.

$serverquery = fsockopen($host, $port, &$errno, &$errstr, $timeout);

The operation times out first (120 seconds), even if $timeout is as low
as 1 second; it works fine if I remove unavailable servers from the
query list.  Sometimes the server crashes if I try the function again
before the last operation times out.

------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=14740&edit=1



Thread (4 messages)

« previous php.dev (#78322) next »