M. J. J.: C: Dateiendekennung fehlt?!

Beitrag lesen

Ich habe den Code nun so abgeändert:

  
char buf[512] = {0};  
char* r = NULL;  
FILE* fd  = fdopen(socket, "r");  
  
printf("Request: \n");  
  
while(!feof(fd)) {  
 r = fgets(buf, sizeof(buf), fd);  
 printf("%s", r);  
}  
  
printf("hallo");  

Aber das Programm 'hängt' immer noch an/in der Schleife fest.
Das printf nach der Schleife wird erst ausgegeben wenn der Client die Verbindung beendet. Aber es sollte ausgegeben werden wenn die Anfrage zuende ist und ich bin immer noch der Meinung das die Dateiendekennung fehlt.
Was tun?