[c#] TCPClient ->HTML senden

Passer

Erfahrenes Mitglied
Tagchen zusammen,

ich bastel grad an einer kleinen Anwendung, die auf Browseranfragen antworten soll, d.h. im Browser wird eine URL aufgerufen <clientip:port?anfrage> und der client sendet einen text zurück.

Dieser Text soll idealerweise im Browser angezeigt werden. Aber irgendwie bekomme ich das nciht hin, dass der Browser die Anfrage akzepiert.

Im Moment bestätige ich so:
Code:
Byte[] sendBytes = Encoding.ASCII.GetBytes ( message );
m_out.Write( sendBytes, 0, sendBytes.Length   );

Dank schon mal im Voraus.

MfG
Christoph
 
Passer hat gesagt.:
Webserver nicht direkt.
Um mit einem Browser zu kommunizieren, musst du das HTTP-Protokoll implementieren und dadurch wird das dann doch irgendwie ein Webserver :)

Zumindest musst du deiner Sendung einen HTTP-Header voranstellen, damit der Browser diese auch als gültigen Request akzeptiert. Du müsstest etwas in der Art senden:
Code:
HTTP/1.1 200 OK
Content-Length: Laenge_des_Datenbereiches
Server: Meine Anwendung
Date: Sat, 13 May 2006 20:15:00 GMT

<html><body>Hallo Browser</body></html>

Die "Laenge_des_Datenbereiches" ist die Anzahl der Bytes deiner Message. Nach dem Header kommt eine Leerzeile, bevor die eigentlichen Daten beginnen.

Sinnvoll wäre es auch, den eingehender HTTP-Header auszuwerten und dort mindestens die angeforderte URL zu extrahieren.
Einen ganz brauchbaren Überblick zu den HTTP-Headern findest du hier

Gruß
MCoder
 

Neue Beiträge

Zurück