C teile in html einfügen
-
Hallo ich habe ein programm geschrieben mit dem ich Temperaturen einlesen kann und sie dann audf console ausgebe. Jetzt möchte ich die Daten die Temperatur in ein html format senden und im netz sehen kann mir jamend sagen wie das geht.
int main(int argc, char *argv[]) { int Temp; int menu; int iEingabe=1; init(); // initialisienen // myVersion(); // Version der DLL anzeigen lassen, geht erst ab version 2?! int j; j=myOpenDevice(0); myClearAllDigital; printf ("\n\n"); printf (" ========= Temperatur Messung ==========\n\n"); printf (" Menue:\n\n"); printf (" 1 = Messung starten\n"); printf (" 2 = Programm verlassen\n\n"); printf (" Bitte eingeben = "); scanf("%d" , &menu); if (menu == 1){ while(1) { system("CLS"); j=myReadAnalogChannel(1); //Analogwert einlesen //printf("Analogwert = %d\n",j); Temp=(j/4.25-20); // unrechnung von Analogwert in Temperatur printf ("\n\n"); printf (" ========= Temperatur Messung ==========\n\n"); printf(" Temperatur = %d\n",Temp); // temperatur ausgabe } } if(menu == 2){ //system("PAUSE"); FreeLibrary(myDll); return EXIT_SUCCESS; } }
-
ich würde das temperatur programm als cgi programm auf einem webserver
bereitstellen.Hier hast du ein Beispiel: http://www.interaktiv.net/shop-system-support/tutorials/cgi_in_c.shtml
-
eine einfache möglichkeit: schreib die htmldatei in c, lade sie per ftp auf deinen webserver hoch.
-
dazu musste einen webserver simulieren, also um deine messwerte ein html-gerüst stricken und über sockets das HTTP teilweise abfrühstücken. es müsste reichen, wenn du einfach, nachdem die verbindung steht, ein HTTP/1.0 200 OK\r\n\r\n + dein html sendest und dann die verbindung sofort wieder schliesst.
-
Ich verstehe das alles nicht so richtig denn ich bin noch anfänder in dem ganzen.
kann man denn nicht eine Datei erstellen die in die immer der aktuelle Temperaturwert geschreiben wird und per html auf die datei zugreifen und so die tem. anzeigen.
-
frank_80 schrieb:
kann man denn nicht eine Datei erstellen die in die immer der aktuelle Temperaturwert geschreiben wird
kannste auch machen, aber dann sind die daten nicht im netz zu finden, sondern du musst dem browser sagen, welche lokale datei er laden soll.
frank_80 schrieb:
...und per html auf die datei zugreifen und so die tem. anzeigen.
'per html zugreifen' gibts nicht. HTML ist ein seiten-layout format. die meisten browser können auch einfache .txt files darstellen. nur haste dann keine möglichkeit, den text grossartig anders aussehen zu lassen.
-
na man könnte mit c ne html seite erstellen, das stimmt schon, indem
man eben die ganzen html tags mit c in eine datei schreibt.Im groben und ganzen so:
datei=fopen("seite.html")
write(datei, "<html><body>");
usw.
write(datei, temperatur);
usw.
write(datei, "<\body><\html>");und dann diese datei auf dem webserver legt.
Der einzige nachteil ist, das du die exe oder so dann immer manuell
aufrufen musst. Die temeratur wird also nicht akzualisiert, wenn
du die seite aufrufst, sondern wenn du die exe ausführst
-
die wenigsten webhoster gestatten cgi programme, die in c geschrieben sind.
-
HTTP/1.0 200 OK\r\n\r\n
Das hat der Firefox (vor einem Jahr) nicht gemocht.
Da mußte man noch irgendeine Zeile dazusagen, sonst wollt er's nicht.
Hab vergessen, welche.die wenigsten webhoster gestatten cgi programme, die in c geschrieben sind.
Wird ihnen eher schwer fallen, herauszufinden, woraus die Binaries gemacht wurden.
...und per html auf die datei zugreifen und so die tem. anzeigen.
Per HTTP.
import CGIHTTPServer
-
flamer schrieb:
import CGIHTTPServer
die wenigsten webhoster gestatten cgi programme, die in c geschrieben sind.
Wird ihnen eher schwer fallen, herauszufinden, woraus die Binaries gemacht wurden.
Sagen wir: Die meisten Webhoster haben etwas gegen native CGI Programme. Denn die Sprache ist ja egal.
-
Bezüglich Webhoster: Kompilierte CGIs sind bei vielen Webhostern problemlos möglich. Manchmal muss die Option allerdings aktiviert werden. Ich sage jetzt nicht, wo ich bin, aber auf meinem Webspace und auch bei dem Anbieter wo ich vorher war klappt es wunderbar. Das einzige was vielleicht schwierig werden kann ist das kompilieren. Da solltest Du auf den Compiler-flag für statisches Linken achten (Ich glaube -static bei gcc).
Bezüglich des Skripts und der Header: Eigentlich sollte Firefox damit kein Problem haben. Ich habe selbst für meinen PC einen Dämon geschrieben, der Port 80 überwacht, auf ein HTTP-Request wartet, dann mit einer Kurzen HTML-Seite antwortet und Apache startet. Firefox kommt damit prima klar. Dabei benutze ich die Header wie folgt:
HTTP/1.0 200 OK Last-Modified: Thu, 13 Nov 2008 09:46:21 GMT Date: Thu, 13 Nov 2008 09:46:21 GMT Content-Language: de Content-Type: text/html Server: ApacheStarter/0.1 Connection: close Content-Length: 4979
Das funktioniert erwiesenermaßen. Wenn nötig kannst Du das ja nachbilden. Falls Du Interesse daran hast, das als eigenständigen Server laufen zu lassen kann ich den Code auch gerne posten.
-
flamer schrieb:
Wird ihnen eher schwer fallen, herauszufinden, woraus die Binaries gemacht wurden.
Die meisten CGI-Skripte laufen über einen Perl-Interpreter, der frisst keine c-Binaries.
-
Die meisten CGI-Skripte laufen über einen Perl-Interpreter, der frisst keine c-Binaries.
Naja.
Unregs sollte man im ANSI-Forum entweder sehr ernst nehmen, oder gar nicht.
-
flamer schrieb:
Unregs sollte man im ANSI-Forum entweder sehr ernst nehmen, oder gar nicht.
hehe, übrigens haben letztens so'n paar möchtegerns, feige und hinterhältig, in einem forum über uns unregs abgelästert, in dem wir uns nicht wehren können.
--> http://www.c-plusplus.net/forum/viewtopic-var-t-is-226324-and-start-is-0.html
ach ja: danke an _matze für die unterstützung.
-
Hehe.
Den hätte ich doch glatt übersehen.Mach dir nix aus dem ganzen Käse; ich hab dich mit neuem Namen ohne Probleme erkannt.
Und _matze: Wenn du wieder einmal ein Problem hast:
Ich werds mir auch anschauen, wenn's mich nicht interessiert.
-
flamer schrieb:
ich hab dich mit neuem Namen ohne Probleme erkannt.
huh? welcher neue name? 'fricky' heisse ich aber schon ein paar wochen.
-
anmerker schrieb:
flamer schrieb:
Wird ihnen eher schwer fallen, herauszufinden, woraus die Binaries gemacht wurden.
Die meisten CGI-Skripte laufen über einen Perl-Interpreter, der frisst keine c-Binaries.
Ein in Perl geschriebenes Skript läuft natürlich über einen Perl-Interpreter, aber warum sollte ein C-Programm einen Perl-Interpreter, der C-Binaries frisst brauchen?
Zum Thema: Schreib einfach eine html-Datei und füge die Temperaturen dort als Platzhalter ein. Öffne die Datei in C, Parse nach dem Platzhalter und ersetze ihn durch die aktuelle Temperatur. Das Ergebnis schreibst du dann (mit ersetzten Platzhalter) in die html-Datei, die du zur Verfügung stellen willst. Ich denke mal es gibt auch fertige Bibliotheken für C, die du verwenden kannst. Suche mal nach "C Template Parser" oder so.
Für eine richtige Webanwendung: Beim Apache z.B. gibt es einen "cgi-bin" Ordner. Dort kannst du deine kompilierte Datei reinlegen. Der Benutzer kann dann dein CGI-Programm einfach aufrufen und bekommt praktisch alles, was an die Standardausgabe gesendet wird in den Browser.
http://openbook.galileocomputing.de/c_von_a_bis_z/c_026_000.htm#Xxx999328
-
huh? welcher neue name? 'fricky' heisse ich aber schon ein paar wochen.
Ich war aber länger als ein paar Wochen im Urwald.
Jetzt kann ich endlich wieder herumflamen.
-
Nagila Hawa schrieb:
Ein in Perl geschriebenes Skript läuft natürlich über einen Perl-Interpreter, aber warum sollte ein C-Programm einen Perl-Interpreter, der C-Binaries frisst brauchen?
Bei vielen Hostern wird alles was in cgi-bin liegt automatisch durch einen Perl-Interpreter gejagt. Da wird das Programm garnicht mehr gefragt, wie es denn gerne interpretiert werden würde.
-
mammamia;