PHP Sockets "hängen sich auf"

  • Hi,
    ich versuche gerade mit PHP HTTP Requests zu machen, was (prinzipiell) auch funktioniert. Die Daten werden vom stream gelesen und sind auch das, was ich erwarte - allerdings belibt das Script dann entweder in feof oder fgets hängen und sitzt dort seine max_execution_time ab.

    stream_set_timeout und ini_set("default_socket_timeout") zeigen auch keinerlei Wirkung... Jemand ne Idee, woran das liegen könnte?

    P.S.: In Java gibst ja InputStream.available (hier ==feof). Allerdings gibt das in Java false zurück, wenn der Server seine Ausgabe fertig hat (sprich den stream schliest). Gibts da in PHP keine Möglichkeit?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (14. April 2011 um 21:18)

  • Der Request stimmt, das Beispiel funktioniert und ich habe nuch auch daran orientiert (das in dem code oben ist nicht das, was tatsächlich geschickt wird). Der Server antwortet auch auf die Anfrage (ich kann bereits mit php googlen xD), allerdings wartet feof noch zu lange. Oder liegt das an einem fehlenden "Connection: Close" im request?

    EDIT:
    Ja, es war das "Connection: close\r\n" im request. Jetzt funktionierts, danke crAzyulf!

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (14. April 2011 um 21:16)