http request beendet mit -1



  • hi,

    do
    {
        bytes = recv ( sock, buf, sizeof ( buf ), 0 );
        if ( bytes > 0 )
        {
            // buf wird verarbeitet....
        }
    }while ( bytes > 0 );
    printf("%d\n", bytes );
    

    -1

    ich lasse nen server auf port 80 lauschen und lese den request des browsers.
    wieso werden zum schluss -1 bytes ausgegeben und nicht 0 ?
    😕



  • Guck dir doch mal deine Schleifenbedingung an. Klingelts?



  • -1 signalisiert einen Fehler. Siehe errno um den genauen Fehler zu erfahren. HTTP sollte man aber nicht selbst implementieren! Nimm lieber eine fertige Bibliothek, zB. libcurl.



  • errno abfragen, gute idee. http implementiere ich nicht komplett, nur soviel, wie für meinen gamserver nötig sein wird.



  • ähm schrieb:

    http implementiere ich nicht komplett

    Genau das ist das Problem. Die ganzen kaputten und unvollständigen "HTTP"-Implementierungen. Nimm lieber was fertiges.



  • welches problem? wo siehst du ein problem? ich sehe keins.



  • rüdiger schrieb:

    HTTP sollte man aber nicht selbst implementieren! Nimm lieber eine fertige Bibliothek, zB. libcurl.

    Inwiefern hilft libcurl beim Schreiben eines HTTP-Servers? Im Übrigen sind viele Teile des HTTP vom RFC 2616 als optional definiert. Wichtiger als Vollständigkeit ist, dass man die zwingenden Bedingungen erfüllt, die der RFC an einen konformen HTTP-Server stellt. Damit sollte sich der Threadersteller vielleicht vertraut machen.

    1.2 Requirements

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
    document are to be interpreted as described in RFC 2119 [34].

    An implementation is not compliant if it fails to satisfy one or more
    of the MUST or REQUIRED level requirements for the protocols it
    implements. An implementation that satisfies all the MUST or REQUIRED
    level and all the SHOULD level requirements for its protocols is said
    to be "unconditionally compliant"; one that satisfies all the MUST
    level requirements but not all the SHOULD level requirements for its
    protocols is said to be "conditionally compliant."

    Quelle: http://tools.ietf.org/html/rfc2616


Anmelden zum Antworten