fsockopen timeout werkt niet :(

Pagina: 1
Acties:

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
ik zit hier op campzone, en ben ff een pagina aan het maken voor onze tent, waar onze nick's ftp's en http's enzo opstaan, nu heb ik een functie gemaakt die controleerd of de ftp of http server on- of off-line is.

PHP:
1
2
3
4
5
6
7
8
9
10
11
function checkconn($ip,$port){
    $fp = fsockopen ($ip, $port, $errno, $errstr, 1);
    if (!$fp)
    {
        return false;
    }
    else
    {
        return true;
    }
}


Als de server on-line is dan is het script met een paar honderdste van een seconde klaar, alleen als ie niet on-line is dan blijft het script echt gigantisch lang doorgaan voordat ie false returnt, terwijl ik de timeout toch echt op 1 heb gezet.

Ik heb al op internet gezocht en ik ben niet de enige met dit probleem bijv. http://www.zend.com/lists/php-dev/200107/msg02507.html

Weet iemand waar dit aan ligt? en hoe ik het op kan lossen? of misschien een andere manier waarop ik kan testen of er iets draait op $ip @ poort 21 en $ip @ poort 80?

PS ik wou ook nog op GoT zoeken maar volgens mij is de index nogal leeg, want ik kreeg geen resultaten.

mijn T.net systeemspecspagina


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Welke versie PHP heb je?

Sommige versie's van PHP4.0.x hebben problemen met timout.

Dit is misschien wel interresant om door te lezen.

http://bugs.php.net/bug.php?id=14740
Note on the previous report -- setting an integer for timeout (e.g. 1)
does not change the behaviour. It still takes 3-4 seconds without
timing out.
Er staan nog meer interresante info in!

[ Voor 0% gewijzigd door LuCarD op 01-08-2002 16:17 . Reden: bug report toegevoegd (8> ]

Programmer - an organism that turns coffee into software.


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Thanx, ik ben weer thuis (inet was beetje traag @ campzone) maar op mijn linuxbak thuis (PHP Version 4.1.2) werkt het perfect, alleen op de IIS installatie (PHP Version 4.2.1) werkt het niet goed :( bij dat linkje wat je mij gaf blijkt dus dat het een probleem is met de Win versies van PHP 4 :
[12 Feb 5:13pm] jason@php.net
The Win32 code does not set a timeout. The comment at the end refers to
there being a problm on linux, which I could not reproduce.

Winsock does support non-blocking IO, but is set up quite differently
than BSD sockets.

-Jason
nouja, nu heb ik het dus opgelost door me Linux bak te gebruiken :D

mijn T.net systeemspecspagina