HTTP-Verbindung aufrecht halten
Übersicht

![]() |
EingeproggtBetreff: HTTP-Verbindung aufrecht halten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allerseits,
Ich bin mit meinem bisherigem System was die Kommunikation mit dem Internet angeht, recht zufrieden. Jetzt wärs an der Zeit, die Geschwindigkeit und Effizienz zu erhöhen. Meine Idee: Einen geöffneten TCP-Stream mehrmals zu verwenden. Laut [url="http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol"]Wikipedia[/url] ist dies mit HTTP 1.1 möglich und wesentlich schneller, als jedesmal die Verbindung neu herzustellen. Nun die logische Frage: Wie geht das? Ich erstelle beispielsweise eine Verbidnung absichtlich ohne "Connection: Close" Code: [AUSKLAPPEN] stream=OpenTCPStream(serveradr$,80)
If stream<>0 Then WriteLine stream,"GET "+webfile$+" HTTP/1.1" WriteLine stream,"Host: "+serveradr$ WriteLine stream,"User-Agent: Christoph" WriteLine stream,"Accept: */*" WriteLine stream,"" Endif Jetzt krieg ich also den Header mit Zitat: HTTP/1.1 200 OK
Date: Thu, 27 Dec 2007 20:00:14 GMT Server: Apache Transfer-Encoding: chunked Content-Type: text/html; charset=latin1 Connection: Keep-Alive Keep-Alive: max=20, timeout=5 Aber wenn ich diese Verbindung erneut benutzen will (ca eine Minute später) gehts nicht mehr... Das hat hächstwahrscheinlich mit der letzten Zeile zu tun. Kann mich da bitte jemand aufklären? mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst immer wieder keep alive nachrichten an den Server schicken, sonst nimmer er an du hast was du wolltest und gibt die verbindung frei. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich sende jetzt alle 5sek eine Nachricht an den Server ("HEAD", was besseres fiel mir nicht ein.. oder gibt es eine spezielle "Keep Alive"-Nachricht?)
Jedoch hängt die Verbindung an nem seidenen Faden. 5sek dürfte schon ziemlich die Grenze sein.... oder hab ich was falsch gemacht? Und was bedeutet diese Nachricht jetzt im speziellen? Zitat: Keep-Alive: max=20, timeout=5
Danke!, Christoph EDIT: Noch ein Problem: Durch das warten auf Eof(stream) bei der "Keep-Alive"-Nachricht wird das Spiel übelst aufgehalten ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
mahe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Keep-Alive: max=20, timeout=5
bedeutet, dass maximal 20 Anfragen über eine Verbindung beantwortet werden und maximal 5 Sekunden ohne Anfrage vergehen dürfen. Danach wird die Verbindung vom Server getrennt. |
||
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ, |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm.. Danke.
Das heißt für mich leider, dass das keine so gute Idee ist, mit dem aufrecht erhalten. Weil ch hab in meinem Spiel auch noch was anderes zu tun, als ständig "HEAD" oder was auch immer zu senden. und nach 20mal is sowieso alles hinüber. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group