You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Flavio Tischhauser <fl...@turbomail.ch> on 2003/12/08 11:39:43 UTC
CGI und C++: �bertragung w�hrend Laufzeit des CGI Programmes?
Hallo zusammen
Ich habe eine eher spezielle Frage zur CGI Programmierung mit C / C++.
In Perl gibt es die M�glichkeit Daten �ber den Webserver an den
Browser zu schicken, bevor das Script fertig abgelaufen ist.
Dies ist bei zeitaufw�ndigen Scripts besonders praktisch, da man den
User nicht vor einem weissen Bild warten lassen muss.
Nun zu meiner Frage: Gibt es eine M�glichkeit bei C / C++ CGI-
Programmen was �hnliches zu erreichen? Der folgende Artikel erl�utert
einen Weg: http://www2.linuxjournal.com/lj-issues/issue82/4386.html
Dieser scheint aber auf einer alten propriet�ren Implementation von
Netscape zu beruhen und funktioniert daher nicht �berall.
Falls mir jemand entsprechende Informationen geben k�nnte w�re ich
�usserst dankbar!
Gruss,
Flavio
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: CGI und C++: �bertragung w�hrend Laufzeit des CGI Programmes?
Posted by Harald Weidner <hw...@gmx.net>.
Hallo,
>Ich habe eine eher spezielle Frage zur CGI Programmierung mit C / C++.
>In Perl gibt es die M�glichkeit Daten �ber den Webserver an den
>Browser zu schicken, bevor das Script fertig abgelaufen ist.
Bei aktuellen Apache-Versionen (sowohl 1.3 als auch 2.0) brauchst
Du daf�r serverseitig nichts speziell konfigurieren, da sie das ohnehin
so machen.
>Nun zu meiner Frage: Gibt es eine M�glichkeit bei C / C++ CGI-
>Programmen was �hnliches zu erreichen? Der folgende Artikel erl�utert
>einen Weg: http://www2.linuxjournal.com/lj-issues/issue82/4386.html
>
>Dieser scheint aber auf einer alten propriet�ren Implementation von
>Netscape zu beruhen und funktioniert daher nicht �berall.
Das Umbenennen des Skriptes in nph-irgendwas war auch bei fr�heren
Apache/NCSA Versionen der Weg, um das gew�nschte zu erreichen. Inzwischen
ist er nicht mehr n�tig. Damit entf�llt auch die Ausgabe des HTTP
Statuscodes.
Wichtig ist dagegen, bei der Programmierung des CGI-Programmes zu
erreichen, dass Ausgaben nicht gepuffert werden. Wie das im einzelnen
geht, h�ngt von der Programmiersprache ab. In Perl wird die Pufferung
durch Setzen der Spezialvariable $| abgeschaltet, in C muss nach jeder
Ausgabe mit fflush() der Puffer geleert werden.
>Falls mir jemand entsprechende Informationen geben k�nnte w�re ich
>�usserst dankbar!
Das folgende CGI-Programm liefert 5 Ziffern im Sekundenabstand:
#include <stdio.h>
int main() {
int i;
printf("Content-Type: text/plain\n\n");
for(i=0; i<5; ++i) {
printf("%d\n", i);
fflush(NULL);
sleep(1);
}
return 0;
}
Man sollte ausserdem noch beachten, dass zwischen dem Server und dem
Browser agierende Proxies den Effekt im allgemeinen kaputt machen. Beim
Testen sollte man daher alle Proxies abschalten.
Gru�, Harald
--
Harald Weidner hweidner@gmx.net
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------