TServerSocket, muss Verbindung schließen zum senden?
-
also wenn ich mir den Socket->ReceiveText() so anschaue, kann man das doch als HTTP Header nehmen oder sehe ich das wieder mal falsch?
aber dies führt auch nicht zum gewünschten erfolg.
hier nochmal der code (Der im ClientRead-Ereignis steht):
AnsiString as_rt=Socket->ReceiveText(); stl_text->Add(as_rt); stl_text->Add("<html><head><title>hmm</title></head><body>hallo</body></html>"); Socket->SendText(stl_text->Text);Der ReceiveText hat ja abschließen das \r\n\r\n brauch das dann ja nicht mehr mit hinzufügen.
-
ThorstenSteinberg schrieb:
also wenn ich mir den Socket->ReceiveText() so anschaue, kann man das doch als HTTP Header nehmen oder sehe ich das wieder mal falsch?
Ja.
Das siehst du falsch.ThorstenSteinberg schrieb:
aber dies führt auch nicht zum gewünschten erfolg.
Genau.
ThorstenSteinberg schrieb:
Der ReceiveText hat ja abschließen das \r\n\r\n brauch das dann ja nicht mehr mit hinzufügen.
...du hast nciht wirklich Erfahrung mit Protokollen und Kommunikation oder?
Hast du schon mal die RFC zum Thema HTTP gelesen?
Schau mal hier nach...
-
ahh, stimmt da war was mit denn Codes 200 404 etc. ich kann mich wage drann errinnern. Danke für den Link, werde ihn mir morgen erst komplett durchlesen, ist zu viel für heute abend.
Also wahrscheinlich melde ich mich morgen hier zu nochmal.
Danke.
Gruß
Thorsten
-
soo, habe nun mal wieder folgendes versucht:
stl_text->Add("HTTP/1.1 200 OK"); stl_text->Add("Date: Mon, 07 Nov 2005 20:20:32 GMT"); stl_text->Add("Server: WebServer"); stl_text->Add("Connection: Keep-Alive"); stl_text->Add("Content-Type: text/html"); stl_text->Add("\r\n\r\n"); stl_text->Add("<html><head><title>hmm</title></head><body>hallo</body></html>"); Socket->SendText(stl_text->Text);Aber auch dieser Versuch klappte nicht
Ich weiß langsam echt nicht mehr weiter...
-
da haste aber ganz schön viele \r\n's vergessen.
-
wenn das so:
stl_text->Add("HTTP/1.1 200 OK\r\n"); stl_text->Add("Date: Mon, 07 Nov 2005 20:20:32 GMT\r\n"); stl_text->Add("Server: WebServer\r\n"); stl_text->Add("Connection: Keep-Alive\r\n"); stl_text->Add("Content-Type: text/html\r\n"); stl_text->Add("\r\n\r\n"); stl_text->Add("<html><head><title>hmm</title></head><body>hallo</body></html>");gemeint war, dann klappet auch nicht ...
-
jetzt hast du einmal zu viel am schluß, aber das wirds wohl nicht sein.
-
ne, das war es leider auch nicht
-
Hast du dir die seite durchgelesen? Dann kann ich mir nicht erklären wei du zu dem Ergebnis kommst?
-
ich habe mir nun nochmal einen beispiel header von denen angeschaut der so aussieht:
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354so und habe meinen nun wie folgt abgeändert:
stl_text->Add("HTTP/1.1 200 OK\r\n"); stl_text->Add("Date: Mon, 07 Nov 2005 20:20:32 GMT\r\n"); stl_text->Add("Content-Type: text/html\r\n"); stl_text->Add("Content-Length: 62\r\n"); stl_text->Add("\r\n"); stl_text->Add("<html><head><title>hmm</title></head><body>hallo</body></html>");aber funktioniert immer noch nicht. ich weiß jetzt echt nicht mehr weiter

-
Sag mal, probierst du einfach nur rum, oder gehst du gezielt vor?
Beantworte mir bitte folgende Fragen:
1. Was macht die Add-Methode von TStringList genau?
2. Wozu ist \r\n da?
3. Wie sieht der zu versendete String aus?
-
Also Add() fügt ja immer einen String in die Liste hinzu. Durch beobachten meine ich, dass nach jedem Add bzw. nach dem String "automatisch" ein \r\n hinzugefügt wird. Also meines erachtens nach bräuchte ich dann oben die ganzen \r\n eigentlich garnicht, nur am schluß einmal \r\n.
Mit dem Steuerzeichen \r "spingt" der Courser zum Anfang der aktuellen Zeilen und \n "springt" der Courser zum Anfang der nächsten Zeile, oder anders gesagt, \n fügt eine neue zeile hinzu.
hmm...
-
ich werd bescheuert

habe nun folgendes dann daraus geschlossen und ausprobiert:
stl_text->Add("HTTP/1.1 200 OK"); stl_text->Add("Date: Mon, 07 Nov 2005 20:20:32 GMT"); stl_text->Add("Content-Type: text/html"); stl_text->Add("Content-Length: 62"); stl_text->Add("\r\n"); stl_text->Add("<html><head><title>hmm</title></head><body>hallo</body></html>");und es funktioniert

danke...
-
Hängt Add wirklich \r\n dran oder nur \n?
-
ich meine \r\n es funktioniert nun aufjedenfall...
-
ThorstenSteinberg schrieb:
ich meine \r\n
Meinen tuen narren...
ThorstenSteinberg schrieb:
es funktioniert nun aufjedenfall...
Das heisst nicht, das es richtig ist!
-
Also durch beobachten von stl_text->Text, weiß ich dass \r\n angefügt wird. Nur warum sollte es nun schon wieder falsch sein? Jetzt nimmst du mir schon fast wieder die gute Laune

-
Wer sagt denn es sei falsch?
-
weil du vorher meintest:
"Das heisst nicht, das es richtig ist!"
das meinte ich nur ...
-
Anders formuliert wollte ich nur sagen:
Nur weil etwas funktioniert, heisst das nicht, dass es über jeden Zweifel erhaben ist! Ich kann dir Software geben, die "funktioniert". Aber wenn man da bestimmte "inputs" abliefert an das Programm, dann funktionierts nicht mehr!