Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

[PHP] Socket listen mit Timeout

  Alt 2. Nov 2011, 17:33
HI @all,

ich möchte mir ein kleines PHP-Skript zusammenbauen, welches die folgenden Funktionen hat:
  1. Einen UDP-Broadcast verschicken
  2. Einen TCP-Socket aufbauen und darauf lauschen
  3. Wenn nach eine bestimmten Zeit keine Verbindung kam, den Socket wieder schließen und das Skript beenden
  4. Wenn doch in der Zwischenzeit eine Verbindung kam, dann eine Datei anlegen und dann das Skript beenden

Die ersten beiden Punkte habe ich schon fertig, nur habe ich keine Ahnung, wie mal einen Timeout bei Sockets mit PHP hinbekommt. Als Idee hatte ich, einen Fork zu erstellen und den nach einem Timeout einfach abzuschießen, aber Forks gehen mit Windows nicht.

Als Anforderung: Das Skript sollte möglichst unter beiden Systemen laufen: Windows und Ubuntu.

PHP-Quellcode:
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, "127.0.0.1", 4567);

socket_listen($socket,1);
$dataSock = socket_accept($socket);
echo socket_read($dataSock, 1024, PHP_NORMAL_READ);
// close sockets
socket_close($socket);
?>
Das ist der Code, der auf die Verbindung wartet.

So: Wie sage ich jetzt PHP, dass es einen Timeout gibt?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat