Hallo
Möchte auch Daten über GPRS zum Webserver senden, weiss nur noch nicht wie das geht. Hast Du Beipeilecode in Bascom der zeigt wie es gemacht wird?
Gruss
Sato
Hey !
Ich programmiere gerade einen atMega128. An dem Controller ist ein GSM-Modem angeschlossen.
Ich will auf eine Webseite über GPRS zugreifen um dort ein php-Skript zu öffnen.
Das funktioniert auch alles soweit gut.
Jetzt will ich aber die Verbindung zum Webserver aufrecht erhalten. Standartmäßig lösen die Webserver nach dem Zugriff die Verbindung.
Mein Zugriff im Moment sieht folgendermaßen aus:
//Socket öffen etc, dann folgende Anweisung senden
GET /jspkurs/web/script/kap1.html HTTP/1.1
Host: localhost
// Jetzt 2x "\r\n" senden.
Ich habe von einem Paramter "connection" gelesen, der dem Webserver sagt, bleib connectet. Wie sieht dazu der Aufruf auf und muß ich auf der Server Seite noch etwas machen ?
Könnte das so gehen ?
GET /jspkurs/web/script/kap1.html HTTP/1.1
Host: localhost
Connection: keep-alive
// Jetzt 2x "\r\n" senden.
Vielleicht weiß ja jemand etwas ....
Thx
Buck
Hallo
Möchte auch Daten über GPRS zum Webserver senden, weiss nur noch nicht wie das geht. Hast Du Beipeilecode in Bascom der zeigt wie es gemacht wird?
Gruss
Sato
Hey !
Es gibt sehr viele verschiedne Wege den Zugriff zu programmieren. Deine HW die du benutzt spielt dabei eine große Rolle.
Erkläre doch mal kurz deinen Aufbau.
Buck
Daten zum Webserver senden geht am Einfachsten per
GET - Parametern, sprich die zu sendenden Daten werden einfach
in die Kommandozeile geschrieben.
sähe dann so in etwa aus:
Das Script kann die dann schon per $_GET verarbeiten.Code:http://meinserver.info/meineseite.php?datensatz1=xyz&datensatz2=abcd
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo Buck,
Connection: keep-alive
ist korrekt.
Http ist übrigens gut dokumentiert und die Dokumentation ist relativ einfach mit einer Suchmaschine zu finden. Beispielsweise hier:
http://www.w3.org/Protocols/HTTP/1.1...1-spec-01.html
grüsse,
Hannes
hallo hannes !
ich werde es einfach mal ausprobieren.
aber gerade diese funktion ist kritisch. am anfang des www wurden die verbindungen grundsätzlioch geschlossen. heute ist das anders. in jedem header vom server steht die connect art. eigentlich ist es der server der über die connection bestimmt. das bedeutet, daß man auf der serverseite auch noch etwas ändern müßste.
der befehl connect: keep-alive ist zwar vorhanden, aber nicht wirklich umgesetzt worden. das habe ich halt bei meinen recherchen herausbekommen, die ich definitiv gemacht habe.
mit meinem post wolle ich auf den erfahrungsschatz der nutzer dieses forums zurückgreifen. das ist mein anliegen.
ich frag mich wozu es gut sein soll eine connection
auf ewig zu halten.
der server wird das auch nicht mitmachen und der provider
macht u.u. auch noch ne zwangstrennung wie beim dsl nach
x stunden.
du hast doch alles ... n gsm modem um die verbindung herzustellen
und dann per request die get daten rüber schicken.
ich kenns zwar nur andersrum, sprich der server löst cronjob aus
und greift auf den lokalen webserver zu um daten zu pollen, ist
aber da einwahlverbindung, besser sorum.
Vorteil wär halt auch, du könntest die verbindung nach datenübermittlung
trennen ... läuft dann nicht so ins geld.
um was für daten dreht es sich denn überhaupt?
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo buck,
du hast natürlich nicht die Garantie, dass ein Server, den du nicht selbst betreibst, ein keep alive beherrscht. Darum sollte man nichts davon abhängig machen, und nötigenfalls auf connection close Betrieb zurückgehen können.
Wenns der server beherrscht, kann der Client connection close oder connection keepalive anfordern. In HTTP schaun dann die beiden Varianten folgendermassen aus (http header und socket Ereignisse im Protokoll):
grüsse,Code:lookup connecting connect to 74.125.43.99 bw-in-f99.google.com write GET / HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Accept-Language: de-at UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Host: www.google.at Connection: Keep-Alive read HTTP/1.1 200 OK Cache-Control: private, max-age=0 Date: Sat, 06 Jun 2009 12:19:46 GMT Expires: -1 Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=adff0003981ad673:TM=1244290786:LM=1244290786:S=-troxoMuBvG5j02J; expires=Mon, 06-Jun-2011 12:19:46 GMT; path=/; domain=.google.at Content-Encoding: gzip Server: gws Content-Length: 3694 ‹ Verbindung bleibt bestehen. Client beendet. disconnect 74.125.43.99 bw-in-f99.google.com lookup connecting connect to 74.125.43.147 bw-in-f147.google.com write GET / HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Accept-Language: de-at UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Host: www.google.at Connection: Close read HTTP/1.1 200 OK Cache-Control: private, max-age=0 Date: Sat, 06 Jun 2009 12:24:35 GMT Expires: -1 Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=d047bb5ad1568677:TM=1244291075:LM=1244291075:S=iIVLqQ8TszFRQZCI; expires=Mon, 06-Jun-2011 12:24:35 GMT; path=/; domain=.google.at Content-Encoding: gzip Server: gws Content-Length: 3697 Connection: close ‹ disconnect 74.125.43.147 bw-in-f147.google.com Server hat beendet.
Hannes
Hallo vitis,
von ewig ist ja auch nicht die rede. Natürlich gibts ein timeout von serverseite. In der HTTP Dokumentation siehst du auch, wie das über die Header kommuniziert werden kann. Unter bestimmten Voraussetzungen spart ein keep alive clientseitig und serverseitig ressourcen, dafür ist es auch vorgesehen und das kann man nutzen.
grüsse,
Hannes
Hey Vitis !
Es geht bei mir darum viele Datensätze zu versenden. Im Moment öffne ich immer wieder einen Socket und sende die Daten. Das Öffnen des Sockets dauert nur immer einige Sekunden und ist auch nicht unkritisch (Abbrüche).
Um dieses zu vermeiden würde ich die Verbindung offen halten und die Zugriffe (GET) auf den Server innerhalb einer Verbindung machen.
Ich habe jetzt eine andere Lösung gefunden. Ein Protokoll in dem ich viele Daten in ein PHP Skript unterbringe.
Buck
Lesezeichen