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                           [EMAIL PROTECTED]

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an [EMAIL PROTECTED]
           sonstige Anfragen an [EMAIL PROTECTED]
--------------------------------------------------------------------------

Antwort per Email an