Halihallo Marko
Ich bin gerade dabei, eine Winsock Klasse zu schreiben. Habe gerade den Server abgeschlossen, und teste ihn gerade als Webserver. Doch hier das Problem: Meine Klasse versucht solange zu empfangen, bis man beim Browser auf "Abbrechen" klickt, dann erst kommen die Daten an. Wie weiss ich, wann der Browser fertig gesendet hat und ich die Daten auswerten kann?
Der Browser sendet den Request-Header, dieser wird vom Content (bei POST-Methode) durch
zwei CRLF (\015\012\015\012, Oktal) getrennt. Wenn nun der Browser keinen Body sendet,
ist nach zwei CRLF in unmittelbarer Folge fertig. Sendet der Browser jedoch Content
mit wirst du im Header ein Feld namens "Content-Length" wiederfinden, welches angibt,
wieviele Bytes nach den zwei CRLF noch kommen und erst dann ist Schluss.
So kannst du feststellen, wann der Request beendet ist; und dann folgt deine Response.
Aber Achtung bei HTTP1.1: Connection: keep-alive hält die Verbindung auch nach der
Response offen und es folgen weitere Requests. Wenn du diesen Standard nicht unterstützt,
solltest du es dem Client über den Response-Header "Connection: close" mitteilen.
Ist das Webclient-spezifisch?
um himmelswillen nein, das wäre für das INet tödlich.
Alles und vieles mehr stehen natürlich in den Standards zu HTTP :-)
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.