Forum: HF, Funk und Felder WiFLY RN171 als Webserver


von Holger W. (holgerw)


Lesenswert?

Hi,
ich versuche mich gerade an einem WiFLY RN171.
Programmiert in C18 auf einem PIC 18F27J13
Initialisierung, WLan Anbindung usw. funktioniert allles.
Jetzt möchte ich einen kleinen Webserver darauf betreiben.
Also TCP Mode eingeschaltet, Konnectionmeldungen raus.
Grüne LED blinkt langsam, hat also Verbindung.

Erhalte ich eine einkommende Anfrage "get..."
dann gebe ich folgendes aus:

writeRomText("HTTP/1.1 200 OK\r\n");
writeRomText("Content-Type: text/html\r\n");
writeRomText("\r\n");
writeRomText("<html><body>Hallo Welt</body></html>\r\n");
writeRomText("\r\n\r\n");

Die grüne LED leuchtet dauerhaft, es besteht also eine Verbindung.
Diese bleibt aber bestehen, der Webserver wartet weiterhin auf Daten ? 
nichts passiert.
Beende ich die Verbindung im Browser fängt die LED wieder an zu blinken.
Mache ich das mehrfach erhalte ich mit etwas Glück doch die Daten 
angezeigt.
Was habe ich getestet, aber keine spürbare Veränderung:
- nach der Ausgabe von oben (+ Wartezeit 500ms) in den Command Mode 
gewechselt und mit close die Verbindung beendet, mit exit wieder raus 
aus dem Commandmode
- set comm idle auf 1 bzw 2 Sekunden (default unendlich)
- Content length in den Header eingebaut und ausgerechnet, hat aber auch 
nur leidlich funktioniert, wollte darauf aber verzichten

Alles hat nicht geholfen, entweder sagt der Browser dann gleich das der 
Server die Verbindung beendet hat oder Ergebnis wie oben.
In diversen Publikationen wird meist Arduino verwendet und dort, wie ich 
es herausgelesen habe, auch nur die Verbindung gekappt.

Bin gerade mit meinem Latein am Ende, hat jemand eine Idee ?
Holger

von Holger W. (holgerw)


Lesenswert?

Ich hab jetzt mal chunked getestet.
Es geht genau einmal, weitere Anfragen werden nicht mehr beantwortet und 
die Verbindung bleibt stehen.

writeRomText("HTTP/1.1 200 OK \r\n");
writeRomText("Transfer-Encoding: chunked \r\n");
writeRomText("\r\n");
writeRomText("0a;\r\n");
writeRomText("Hallo Welt\r\n");
writeRomText("0;\r\n");
writeRomText("\r\n");

Holger

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.