我有一个服务器每 5 秒向客户端发送一次数据。我希望客户端阻止 read() 直到服务器发送一些数据然后打印它。我知道 read () 默认是阻塞的。我的问题是我的客户没有阻止 read()。这很奇怪,这似乎不是一个正常的问题。
我的代码在无限循环中打印“什么都没有回来”。我在一台linux机器上,用c编程。我的代码片段如下。请指教。
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;