SorgenkindMech: socket_accept und schluss?

moin ihrs

ganz kurze frage auf die es hoffentlich eine ganz kurze antwort gibt *g*

in meinem script steht folgendes:

4332: $socket = socket_create_listen(6000);
4333: socket_accept($socket);

tja, und wenn ich zeile 4333 nicht kommentiere, also sozusagen ausblende, sodass die zeile nicht ausgeführt wird, hängt sich mein ganzes script auf ..... kommt nichtmal execution_time blabla, vonwegen zeit überschritten (was aber eingestellt ist auf 30 sec) nix...

ich mein ok, der wartet nun auf ne eingehende verbindung oder?

aber der kann doch nich ewig warten

bzw. ich muss ja auch n anderen serer anweisen was zu schicken, mach ich das aber davor gehts ins leere, und mach ich es dahinter wirds garnich ausgeführ, oder?

ok, frage wird doch länger, hier mal was ich vor habe:

ich sende an n hl-server den befehl mir das log zu schicken, befehl kommt auch an, ok

dann sage ich dem script horchen, und akzeptieren, und denn will ich das einlesen und weiter verarbeiten

oder muss ich erst sagen horchen dann gib und dann akzeptieren?

werd ich auch gleich ma ausprobieren, muss ja dafür rechner neu starten, weil sich dabei komplett IIS aufhängt *grrr*

naja, wär dankbar für jeden guten ratschlag bezüglich sockets, kenn mich da auch so gut wie garnich aus

bis denn dann

  1. Hi,

    ganz kurze frage auf die es hoffentlich eine ganz kurze antwort gibt *g*

    Ja, aber die wird Dir nicht gefallen befürchte ich.

    in meinem script steht folgendes:

    4332: $socket = socket_create_listen(6000);
    4333: socket_accept($socket);

    tja, und wenn ich zeile 4333 nicht kommentiere, also sozusagen ausblende, sodass die zeile nicht ausgeführt wird, hängt sich mein ganzes script auf ..... kommt nichtmal execution_time blabla, vonwegen zeit überschritten (was aber eingestellt ist auf 30 sec) nix...

    Das ist eine Definitionsfrage, solche Wartezeiten zu der Ausführungszeit dazuzählen.

    ich mein ok, der wartet nun auf ne eingehende verbindung oder?

    Jupp. (gehe aber davon aus, das alles korrekt geschrieben wurde, kenne mich in PHP nicht so aus)

    aber der kann doch nich ewig warten

    Doch, das tut er.

    bzw. ich muss ja auch n anderen serer anweisen was zu schicken, mach ich das aber davor gehts ins leere, und mach ich es dahinter wirds garnich ausgeführ, oder?

    Dahinter wird's nix, klar, aber davor durchaus. Wo liegt das Problem?

    ok, frage wird doch länger, hier mal was ich vor habe:

    ich sende an n hl-server den befehl mir das log zu schicken, befehl kommt auch an, ok

    Ist möglich, das der hl-server zu ungeduldig ist.
    Siehe http://de2.php.net/manual/en/function.pcntl-fork.php für eine mögliche Lösung.

    dann sage ich dem script horchen, und akzeptieren, und denn will ich das einlesen und weiter verarbeiten

    oder muss ich erst sagen horchen dann gib und dann akzeptieren?

    Nein, fork(), das Kindlein horcht
    Dann ordern.
    Warten, bis etwas angekommen ist.
    Angekommenes verarbeiten.

    werd ich auch gleich ma ausprobieren, muss ja dafür rechner neu starten, weil sich dabei komplett IIS aufhängt *grrr*

    Für solche Experimente empfiehlt sich kein Windows mit IIS, das bringt nur Magengeschwüre.

    naja, wär dankbar für jeden guten ratschlag bezüglich sockets, kenn mich da auch so gut wie garnich aus

    Dann mache Dich doch kundig:
    http://www.developerweb.net/sock-faq/
    http://ca.php.net/manual/en/ref.sockets.php

    so short

    Christoph Zurnieden

    1. ich mein ok, der wartet nun auf ne eingehende verbindung oder?

      Jupp. (gehe aber davon aus, das alles korrekt geschrieben wurde, kenne mich in PHP nicht so aus)

      aber der kann doch nich ewig warten

      Doch, das tut er.

      sau die ;)

      Dahinter wird's nix, klar, aber davor durchaus. Wo liegt das Problem?

      .. werd ich gleich ma testen

      Ist möglich, das der hl-server zu ungeduldig ist.
      Siehe http://de2.php.net/manual/en/function.pcntl-fork.php für eine mögliche Lösung.

      also wenn ich die funktion richtig verstehe, dann wird sozusagen eine neue instanz geschaffen, welche zeitgleich abläuft, sodass ich theoretisch 2 sachen zur fast gleichen zeit abarbeiten kann

      mein verständnis:

      ich gable
      in der urpsurngsfunktion sage ich akzeptieren
      im nebenprozess forde ich die daten an

      urpsprungsprozess bekommt daten, nebenprozess hat schon abgedankt

      alle sind zufrieden ....?

      ich denke ich liege da ein wenig falsch, aber gut, muss mich etwas näher damit beschäftigen

      weiß ja nich, ob es möglich ist, dass wenn der horcht, alles was er bekommt in nen puffer legt und wenn man dann sagt akzeptieren, dass er dann den puffer sozusagen reingedrückt bekommt

      werd aber auf jeden fall berichten, wie ich vorwärts komme

      Dann mache Dich doch kundig:
      http://www.developerweb.net/sock-faq/

      respekt, die faq is ja riesig, werd ich mich morgen dran setzen

      so dann bis morgen und danke auf jeden fall schonmal