kostenloser Webspace werbefrei: lima-city


Socket Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    schruebl

    schruebl hat kostenlosen Webspace.

    Hallo

    Errorcode:
    Fatal error: Maximum execution time of 30 seconds exceeded in E:\Apache2\htdocs\socket_class.php on line 104

    socket.php:
    [Begin]
    <?php
    include('socket_class.php');
    $ns= new socket;
    $ns->set_host('www.aol.com', 1);
    $ns->connect();
    $ns->send("HEAD");
    $responde= $ns->read();
    $responde= explode("\r\n", $responde);
    echo $responde[12];
    socket_close ($ns->socket);
    ?>
    [End]

    socket_class.php:
    [Begin]
    <?php
    class socket
    {
    var $service_port;
    var $host= '';
    var $socket= '';
    var $out= '';
    var $in= '';

    function set_host($address, $mode = 0)
    {
    $this->service_port= getservbyname('www', 'tcp');
    if($mode == 0)
    {
    $this->host= $address;
    }
    elseif($mode == 1)
    {
    $this->host= gethostbyname ($address);
    }
    }

    function connect()
    {
    $this->socket= socket_create (AF_INET, SOCK_STREAM, 0);
    $result= socket_connect ($this->socket, $this->host, $this->service_port);
    return $result;
    }

    function send($method, $path = '/', $http_version = '1.1')
    {
    $this->in= $method." ".$path." HTTP/".$http_version."\r\n";
    return socket_write ($this->socket, $this->in, strlen ($this->in));
    }

    function read()
    {
    //Das ist Line 104
    while($this->out= socket_read($this->socket, 2048))
    {
    $return .= $this->out;
    return $return;
    }
    }
    }
    ?>
    [End]


    $ns->connect() gibt True(1) aus.
    $ns->send("HEAD") gibt 17(17 Bytes gesendet aus, des ist richtig) aus.

    Kann mir jemand helfen?

    Wenn ihr weitere Informationen braucht schreibt es.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s******r

    Hallo

    Gib uns mal die Zeile "104" aus der Datei "socket_class.php"...

    Ich glaube nicht, dass ich lust habe, 104 Zeilen herunterzuz?hlen.

    bis dann,
    scripter
  4. Autor dieses Themas

    schruebl

    schruebl hat kostenlosen Webspace.

    //Das ist Line 104
    while($this->out= socket_read($this->socket, 2048))

    sry vielleicht etw<as schelcht gemacht

    edit: es sind keine 104 zeilen habe die gesamten kommentare entfernt
  5. 0******a

    Du sendest einen unvollst?ndigen HTTP 1.1 Header. Der Server wartet dann weiter auf die fehlenden Daten und daher bekommst du irgendwann den Fehler gemeldet, weil das PHP-Skript wegen zu langer Ausf?hrungszeit beendet wird. Ein vollst?ndiger (Mindestanforderung) HTTP 1.1 Header sieht so aus:
    --------------
    GET / HTTP/1.1\r\n
    Host: www.lima-city.de\r\n
    \r\n
    --------------
    Dies gilt f?r alle Methoden, also auch HEAD, POST und den anderen, die es noch gibt.

    Du musst die Funktion send() also wie folgt ab?ndern (habe mal zus?tzlich noch paar andere Verbesserungen eingef?gt):
    function send($method, $path = '/', $http_version = '1.1')
    {
    &nbsp;&nbsp;if ($http_version != "1.1")
    &nbsp;&nbsp;&nbsp;&nbsp;$http_version = "1.0";

    &nbsp;&nbsp;$this->in= $method." ".$path." HTTP/".$http_version."\r\n";

    &nbsp;&nbsp;if ($http_version == "1.1")
    &nbsp;&nbsp;&nbsp;&nbsp;$this->in .= "Host: " . this->host . "\r\n";

    &nbsp;&nbsp;$this->in .= "\r\n";

    &nbsp;&nbsp;return socket_write ($this->socket, $this->in, strlen ($this->in));
    }

  6. Autor dieses Themas

    schruebl

    schruebl hat kostenlosen Webspace.

    @o-checka: Das geht ebenfalls leider nicht bringt die gleiche Fehlermeldung.
  7. 0******a

    Stimmt doch gar nicht...
    Bei mir kommt dann einmal eine Fehlermeldung, weil ich in der von mir verbesserten Funktion ein $ vor einer Variablen vergessen habe. Wenn ich das korrigiere, dann funktioniert es. Man bekommt zwar ?berhaupt keine Ausgabe (kA, was du versuchst mit echo $responde[12] auszugeben, mit echo $responde bekommt man zumindest die Serverantwort zu sehen), aber auch keine Fehlermeldung mehr.
  8. Autor dieses Themas

    schruebl

    schruebl hat kostenlosen Webspace.

    Ok, mein Fehler. Jetzt gehts vorhin gings nicht kA wieso.

    Vielen Dank f?r die Hilfe.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!