c++ ausgabe im Browser



  • Hallo

    ich überlege schon lange wie man sowas machen könnte.
    Ich will einen counter schreiben der jede Sekunde eins hochzählt.
    Dies soll dann in einen Web Browser wiedergegeben werden.

    also

    int counter = 0;
    for (;;) {
    counter++;
    cout>>"counter"; //das soll im Browser ausgegeben werden
    warten();
    }
    

    muss da counter.cpp direkt aufgerufen werden im Browser oder wie geht sowas?



  • Hallo

    - Thema warten : Suche hier im Forum nach *sleep* oder *timer*
    - Thema Browser : C++ kennt keine Browser und selbst wenn können Browser nicht einfach etwas darstellen. Das von der Code-Komplexität einfachste her wäre aus dem darzustellenden Wert eine gültige HTML-Datei zu generieren, diese abzuspeichern und über die zuständigen OS-Funktionen den Browser mit dieser Datei aufzurufen.

    bis bald
    akari



  • Das ist ein Fall für JavaScript. Der Umweg über html-Datei schreiben und aufrufen ist ziemlich ätzend. Zudem muss der Browser ja jede Sekunde die Datei refreshen, was wohl auch nicht so easy steuerbar ist.



  • Ist natürlich Machbar, wäre aber mit Kanonen auf Spatzen geschossen. Um so eine einfache Sache im Browser darzustellen bietet sich eher JavaScript an.

    Wenn Du unbedingt C++ haben willst, mußt Du halt eine C++-Webapplikation schreiben und dem Browser anweisen, diese Applikation jede Sekunde aufzurufen. Dafür würde sich dann Ajax anbieten.

    Tntnet

    PS: ach wieder auf der Ziellinie abgefangen. 😃



  • Leute, habt ihr noch nie was von CGI gehört?



  • dEUs schrieb:

    Leute, habt ihr noch nie was von CGI gehört?

    CGI rockt irgendwie nicht die Bude... und man braucht einen Webserver... also bleibt's für mich dabei: C++ ist dafür nicht die ideale Sprache und man schießt mit Kanonen auf Spatzen 😉



  • muss es denn wirklich c++ sein? JavaScript oder irgendein java-applet oder einfach ein eingebundenes flashfilmchen-dingens wäre da wirklich angebrachter. Kannst du uns bitte erzählen, wofür du das brauchst?



  • Ja ich wollte schon C++ nähmen und kein CGI das ist mir zu komisch.

    Ich habe nähmlich einen Socket der auch funktioniert und wollte mal schaun ob man das im HTTP ausgeben kann.

    Und wollte mit einen einfachen Counter anfangen und das dann auf den socket übertragen.



  • Du hast keine Ahnung, was CGI ist.

    @CStoll: Ich stimme dir übrigens natürlich zu das ganze in JavaScript zu implementieren.



  • CGI ist doch Perl als webapplikation

    kann ich in cgi mein c schreiben?

    Hmmm irgendwie scheint das so zu gehen kann mir mein counter da jemand als beispiel machen?



  • dEUs schrieb:

    @CStoll: ...

    Es ist zwar schön, hier als Experte anerkannt zu werden, aber mit fremden Federn muß ich mich noch nicht schmücken 😃



  • blue_devil86 schrieb:

    CGI ist doch Perl als webapplikation

    Njet.

    CGI ist nur eine Schnittstelle.
    Perl ist eine Möglichkeit, diese zu bedienen.
    Eine exe Datei läßt sich da prinzipiell genausogut verwenden.



  • CStoll schrieb:

    dEUs schrieb:

    @CStoll: ...

    Es ist zwar schön, hier als Experte anerkannt zu werden, aber mit fremden Federn muß ich mich noch nicht schmücken 😃

    Oops! Sorry GPC 😉



  • gut jetzt bin ich bei perl 🙂 wieder leider

    wenn ich sowas mache

    #!/usr/bin/perl
    
    $|=1;
    print "Content-Type: text/html\r\n\r\n";
    
    for(my $counter = 0; $counter <= 100; $counter++) {
    
    	printf "Counter bei $counter <br>";
    	sleep(1);
    	system("cls");
    }
    

    wie bekomme ich das dann hin wenn ich mir jetzt die seite ansehe und der counter zählt sagen wir

    Counter bei 20

    und alle die die Seite aufschlagen sehen auch genau Counter bei 20

    also wie ein Daemon 🙂



  • Lies dir doch bitte einfach durch, was man dir hier schreibt, ja?



  • dEUs schrieb:

    CStoll schrieb:

    dEUs schrieb:

    @CStoll: ...

    Es ist zwar schön, hier als Experte anerkannt zu werden, aber mit fremden Federn muß ich mich noch nicht schmücken 😃

    Oops! Sorry GPC 😉

    np 🙂



  • blue_devil86 schrieb:

    wie bekomme ich das dann hin wenn ich mir jetzt die seite ansehe und der counter zählt sagen wir

    Counter bei 20

    und alle die die Seite aufschlagen sehen auch genau Counter bei 20

    also wie ein Daemon 🙂

    Du solltest dich erst mal mit der Webtechnologie an sich beschäftigen. Du hast das grundlegende Prinzip noch nicht verstanden.

    Eine Webapplikation wird für jeden Request von neuem aufgerufen. Er generiert immer die komplette Seite. Sleep oder cls oder sonst was hat da gar nichts zu suchen.

    Wenn Du etwas persistentes haben möchtest, dann speichere den Wert in einer Datenbank, im Dateisystem oder sonstwo. Ein Applikationsserver hat da unter umständen noch andere Möglichkeiten (tntnet beispielsweise hat einen application-scope).

    Du kannst Dein Perl-CGI-Script auch 1-zu-1 in C oder C++ übersetzen und als CGI ausführen. Das geht beispielsweise so:
    Perl-Variante

    #!/usr/bin/perl -w
    print "Content-Type: text/html\r\n\r\n";
    print "<html><body>Hallo</body></html>\n";
    

    und in C++:

    #include <iostream>
    int main(int argc, char* argv[])
    {
      std::cout << "Content-Type: text/html\r\n\r\n"
                << "<html><body>Hallo</body></html>\n";
    }
    

    Tntnet



  • ja also wenns schon unbedingt eine Applikation sein muss, dann schreib dir doch ein kleines Java Applet (das ist nämlich genau für sowas entwickelt worden) und gut ists! Einfach dann das fertige Applet in einer Html-Seite aufrufen und schon funktioniert das Ganze.

    hth. Joe



  • jo als java hab ich es ja auch schon wollte es aber auch so direkt reinbringen.

    ne ich mach ein c++ socket auf den server
    und auf den client nen cgi mittels perl so müste es gehen das sie sich alle unterhalten können




Log in to reply