read () blockiert nicht in der Socket-Programmierung

Ich habe einen Server, der alle 5 Sekunden Daten an einen Client sendet. Ich möchte, dass der Client read () blockiert, bis der Server einige Daten sendet und sie dann druckt. Ich weiß, dass read () standardmäßig blockiert. Mein Problem ist, dass mein Client nicht auf read () blockiert. Dies ist sehr merkwürdig und scheint kein normales Problem zu sein.

Mein Code gibt "Nothing come back" in einer Endlosschleife aus. Ich bin auf einem Linux-Rechner und programmiere in c. Mein Code-Snippet ist unten. Bitte um Rat.

while(1)
{
    n = read(sockfd, recvline, MAXLINE);
    if ( n > 0) 
    {
        recvline[n] = 0;    
        if (fputs(recvline, stdout) == EOF)
            printf("fputs error");
    }
    else if(n == 0)
        printf("Nothing came back");
    else if (n < 0)
        printf("read error");
}
return; 

Antworten auf die Frage(3)

Ihre Antwort auf die Frage