Manfred: TCP Socket Daten auswerten

Hallo,

bei mir lauscht der xinetd unter Linux auf Anfragen auf Port 7878 und führt einfach ein Shell-Script aus, welches den PHP-Code wie folgt enthält.

#!/usr/bin/php -q
<?php
print "done";
?>

Mittels fsockopen unter php als client auf Port 7878 bekommt man wunderbar "done" zurückgeliefert. Meine Frage ist, wie kann man hier mittels php, welches als CLI läuft die übermittelten Argumente in den PHP-Script einlesen und wieder zurückgeben per "print" oder sonstwie????

Die Server Globals $_SERVER["argv"] sind hier einfach leer. Hat jemand eine kreative Idee???

Manfred

  1. Hallo,

    #!/usr/bin/php -q

    das CLI-Binär braucht keinen Parameter -q (den es wegen -is nich- sowieso nicht parst).

    Die Server Globals $_SERVER["argv"] sind hier einfach leer. Hat jemand eine kreative Idee???

    Mach mal ein print_r($GLOBALS); in Deinem Script, dann wirst Du feststellen, daß deine maßgeblichen Variablen $argv und $argc sind

    Gruß aus Berlin!
    eddi

    1. Hallo,

      habe ich gemacht die Var $args enthält nur einen Wert im Array und das ist der Name der eigenen Datei, in diesem Fall "/myscripts/myport7878.sh". Mit dem Shell Befehl read kann ich den übermittelen Wert auslesen, warum geht das nicht auch mit PHP???

      Die config unter xinetd sieht so aus:

      service myport7878
           {
           port            = 7878
           protocol        = tcp
           socket_type     = stream
           wait            = no
           user            = root
           server          = /myscripts/myport7878.sh
           log_on_success  += USERID
           log_on_failure  += USERID
           disable         = no
          }

      1. Re:

        Mit dem Shell Befehl read kann ich den übermittelen Wert auslesen, warum geht das nicht auch mit PHP???

        und was macht read? Es list aus dem stdin.

        #!/usr/bin/php -q
        <?php print "done"; ?>

        Tjo; nichts ausgelesen - nichts erhalten. So einfach ist das, oder bekommst Du Mehl ohne es aus dem Supermarkt zu holen?

        Gruß aus Berlin!
        eddi