phpbar.de logo

Mailinglisten-Archive

AW: [php] Timeout bei Socket-Communication

AW: [php] Timeout bei Socket-Communication

Wolfgang Hauck php_(at)_phpcenter.de
Thu, 18 Apr 2002 14:57:46 +0200


Ruth wrote:

>Folgendes Szenario:
>Eine Message wird mit socket_write() auf den vorgegebenen Port 
geschrieben.
>Das Server-Exe sollte normalerweise eine Antwort schicken. Aus irgendeinem
>Grund schickt der Server keine Meldung. Daraufhin blockiert das Script und
>wird erst nach max_execution_time = 30 sec abgebrochen.

>Ziel:
>Ich mochte maximal 10 sec auf Antwort warten, nachdem ich eine Message auf
>den Socket geschrieben haben. Wenn die 10 sec. Vorbei sind, so werde ich
>eine Fehlerbehandlung durchfuhren.

>Frage:
>Wie kann ich mein PHP Script so abandern, dass nach socket_write() maximal
>10 sec gewartet wird, ohne dass das Script blockiert?
>Ich habe bereits versucht, die Methode socket_set_timeout($socket, 2) nach
>socket_write() aufzurufen, aber leider ohne Erfolg!

>Wer weiss eine Losung fur mein Problem?

Hi Ruth,

Das Problem bei Socket -Verbindungen ist, dass man genau wissen muss was 
man an den Socketserver weitergibt. Hier hilft eigentlich nur eine 
gewissenhafte und genaue Syntaxuebergabe. Wenn du z.B. was sendest bevor du 
eine Antwort vom Server gelesen hast oder umgekehrt haengt die Verbindung, 
es kommt schlichtweg nichts, auch keine Fehlermeldung. Der Befehl 
socket_set_timeout bringt in diesem Falle auch nichts. Da hilft bei 
Standardsocket nur das Durchlesen der RFC's, bei eigener Programmierung 
fehlerfreier Syntax.

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive