Toon posts:

[php] idle tijd instellen bij een socket_connect, kan dit?

Pagina: 1
Acties:

Onderwerpen


  • rob3rt
  • Registratie: maart 2009
  • Laatst online: 22-10 17:09
Ik maak gebruik van een simpel php script om naar een bepaalde poort te connecten en aldaar informatie op te vragen van deze server.

Dit werkt allemaal prima echter het wil wel eens voorkomen dat de server waar ik heen connect normaal connect maar eenmaal verbonden geheel geen response terug geeft.
(dit is geen fout van het script maar een fout van de server, dit kan ik zelf niet verhelpen)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
set_time_limit(5);
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if ($socket === false) {
        $restartmessage = "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br>\n";
    $restart_result = FALSE;
    }
    @socket_bind($socket, $ipadres);
    $result = @socket_connect($socket, $ip, $port);
    if ($result === false) {
        $restartmessage = "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "<br>\n";
    $restart_result = FALSE;
    }
    @socket_write($socket, $in, strlen($in));
    while ($out = @socket_read($socket, 2048)) {
        $restartmessage .= $out;
    //echo "out = $out<br>\n";
    }
    if (empty($restart_result)) { 
        $restart_result = TRUE;
    }
    $returnmessage = "$restart_result<>$restartmessage";
    @socket_close($socket);


Dit heeft als gevolg dat mijn script blijft wachten op een reactie en niet afsluit, op zich niet erg ware het niet dat de rest van het script dan ook niet verder loopt.

Nu heb ik gezocht naar een optie om een timeout in te bouwen, dus dat een verbinding na een X aantal idle tijd vanzelf vanuit mijn script wordt verbroken.
Maar hierover kan ik geheel geen informatie vinden of dit wel kan, het lijkt erop dat PHP dit niet ondersteund, klopt dit?

Let wel op dat het niet gaat om een timeout op het maken van de verbinding, dit zit er al in werkt ook normaal. Het gaat er echt om dat als er een verbinding is dat deze dan na een bepaalde idle time automatisch door mijn script wordt verbroken, zodat de rest van het script verder loopt.

Kan iemand me op weg helpen en me een tip geven waar ik gericht op moet zoeken want ik vind zelf via deze forum, google en php.net helaas geen info hierover of dit kan en zo ja hoe dan.

Alvast bedankt voor eventuele reacties.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee