HTTP-Server erstellen
Hi,
ich brauch schon wieder mal eure Hilfe.
Mir war 'n bisschen langweilig, also hab ich mir entschlossen, nen eigenen HTTP-Server zu erstellen. Ich hab die Sockets erstellt und kann auch Strings etc. übertragen, aber was muss ich machen, dass der Browser die übertragenen Daten auch als HTML-Seite erkennt? Ich kann zwar an meinem Server sehen, dass eine Verbindung besteht, wenn ich versuche vom IE auf meine eigene Adresse zuzugreifen, aber im Browser kommt immer, die Seite kann nicht angezeigt werden. Kann ich irgendwie, eine fertige HTML-Datei versenden, oder muss ich die wirklich immer mit dem C++-Programm einlesen und dann als String versenden?
Vielleicht kennt ja auch jemand von euch ein Tutorial, das beschreibt, wie man einen HTTP-Server mit C/C++ erstellt?
Danke
Bernd das Brot
ich brauch schon wieder mal eure Hilfe.
Mir war 'n bisschen langweilig, also hab ich mir entschlossen, nen eigenen HTTP-Server zu erstellen. Ich hab die Sockets erstellt und kann auch Strings etc. übertragen, aber was muss ich machen, dass der Browser die übertragenen Daten auch als HTML-Seite erkennt? Ich kann zwar an meinem Server sehen, dass eine Verbindung besteht, wenn ich versuche vom IE auf meine eigene Adresse zuzugreifen, aber im Browser kommt immer, die Seite kann nicht angezeigt werden. Kann ich irgendwie, eine fertige HTML-Datei versenden, oder muss ich die wirklich immer mit dem C++-Programm einlesen und dann als String versenden?
Vielleicht kennt ja auch jemand von euch ein Tutorial, das beschreibt, wie man einen HTTP-Server mit C/C++ erstellt?
Danke
Bernd das Brot
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34152
Url: https://administrator.de/forum/http-server-erstellen-34152.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
nicht dass ich jetzt alle Kenntnisse hätte, um einen HTTP-Server selbst zu programmieren, aber was ich weiß: Der muss mehr können, als auf Port 80 auf Anfragen zu horchen.
Der Browser stellt eine HTTP-Anfrage und erwartet, dass der Server gemäß dem HTTP-Protokoll antwortet. Es reicht nicht, wenn er einen String oder eine HTML-Seite einfach zurückschickt, es müssen auch die richtigen HTTP-Header, etc. mitgeschickt werden.
Du wirst also nicht darum herumkommen, Deinem Server beizubringen, wie man "HTTP" spricht. Ich bin jetzt nicht der C++-Experte, aber es gibt für so viele Programmiersprachen HTTP-Umsetzungen/Module, die einen sehr einfachen Zugriff auf HTTP ermöglichen, ohne dass man selbst wirklich jeden Teil der Kommunikation selbst programmieren muss. Vielleicht suchst Du mal nach was passendem.
Ansonsten, viel Spass beim lesen der RFCs
http://www.faqs.org/rfcs/rfc1945.html
ftp://ftp.isi.edu/in-notes/rfc2616.txt
Gruß,
Tim
nicht dass ich jetzt alle Kenntnisse hätte, um einen HTTP-Server selbst zu programmieren, aber was ich weiß: Der muss mehr können, als auf Port 80 auf Anfragen zu horchen.
Der Browser stellt eine HTTP-Anfrage und erwartet, dass der Server gemäß dem HTTP-Protokoll antwortet. Es reicht nicht, wenn er einen String oder eine HTML-Seite einfach zurückschickt, es müssen auch die richtigen HTTP-Header, etc. mitgeschickt werden.
Du wirst also nicht darum herumkommen, Deinem Server beizubringen, wie man "HTTP" spricht. Ich bin jetzt nicht der C++-Experte, aber es gibt für so viele Programmiersprachen HTTP-Umsetzungen/Module, die einen sehr einfachen Zugriff auf HTTP ermöglichen, ohne dass man selbst wirklich jeden Teil der Kommunikation selbst programmieren muss. Vielleicht suchst Du mal nach was passendem.
Ansonsten, viel Spass beim lesen der RFCs
http://www.faqs.org/rfcs/rfc1945.html
ftp://ftp.isi.edu/in-notes/rfc2616.txt
Gruß,
Tim
Hallo, ich habe hier einen kleinen webserver auf einem embedded system laufen, der ein paar kleine html seiten übertragen kann. Mein Problem ist : wie überträgt man große html seiten korrekt in mehreren paketen ? Habe "das ganze Netz" ( ) durchsucht und diese Information nirgends gefunden (scheint zu einfach zu sein) Alle Versuche sind bis jetzt fehlgeschlagen.
Ich hätte auch einen neuen Thread dafür eröffnet aber der Sch... funktioniert irgendwie nicht.
Gruß
Matthias
Ich hätte auch einen neuen Thread dafür eröffnet aber der Sch... funktioniert irgendwie nicht.
Gruß
Matthias
ok, man muß einfach mehrere Pakete mit dem geteilten html Inhalt senden. Das habe ich auch schon vorher auf mehrere Arten versucht, leider scheint es ein Problem bei der Kommunikation zwischen server und browser zu geben. Während es sonst in dieser Richtung keine Probleme gibt bekomme ich die Fehlermeldung "tcp: incorrect Acknum" dort wird die Länge des falschen Pakets als Grundlage für die ack nummern Berechnung verwendet, keine Ahnung warum. Der html Inhalt wird auch nicht mit angezeigt nur die Daten des ersten Pakets werden im Browser angezeigt. Hat jemand ein Idee oder besser Erfahrung warum das schief läuft ?
danke,
Gruß
Matthias
danke,
Gruß
Matthias