Mailinglisten-Archive |
Hallo, ich habe ein PHP Script geschrieben, welches als Client agiert. Mein Code sieht so aus: ... // build TCP socket connection $socket = socket_create (AF_INET, SOCK_STREAM, 0); if ($socket < 0) { } // socket is connected $result = socket_connect ($socket, $127.0.0.1, $8500); if ($result < 0) { } // sending to socket $result = socket_write($socket, $in, strlen ($in)); if ($result < 0) { } // get response from server if (($result = socket_read($socket,2048)) == false) { } // socket is closed socket_close ($socket); 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 möchte 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 durchführen. Frage: Wie kann ich mein PHP Script so abändern, 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 Lösung für mein Problem? Danke und Gruß Ruth Merg PS: Ich verwende PHP 4.0.8
php::bar PHP Wiki - Listenarchive