0

为什么在从套接字读取之前打印你好然后祝你好运然后又是你好sockfd
那么为什么它跳过读取打印?

int number=read(sockfd,&buff,500);
while(number>0)
{
printf("hello ");
number=read(sockfd,&buff,500);
printf("good luck");
}
4

2 回答 2

1

因为当连接到终端时,stdout是行缓冲的,\n所以在打印内容的末尾添加一个prinf("hello\n");或使用fflush

while(number>0)
{
    printf("hello ");
    fflush(stdout);
    number=read(sockfd,&buff,500);
    printf("good luck");
    fflush(stdout);
}
于 2013-10-05T09:19:03.333 回答
1

更改此读取语句

number=read(sockfd,&buff,500); ==> number=read(sockfd,buff,500);  

你只需要读入缓冲区。

于 2013-10-05T09:21:12.000 回答