HTTP-Verbindung aufrecht halten

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Eingeproggt

Betreff: HTTP-Verbindung aufrecht halten

BeitragDo, Dez 27, 2007 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Dez 27, 2007 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Dez 27, 2007 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Sad
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

mahe

BeitragDo, Dez 27, 2007 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Dez 27, 2007 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group