为什么它打印你好然后好运然后再次打招呼才能从套接字sockfd
读取?
那么为什么它跳过阅读打印?
int number=read(sockfd,&buff,500);
while(number>0)
{
printf("hello ");
number=read(sockfd,&buff,500);
printf("good luck");
}
答案 0 :(得分:1)
因为当连接到终端时,stdout
是行缓冲的,所以在\n
打印内容的末尾添加prinf("hello\n");
或使用fflush
:
while(number>0)
{
printf("hello ");
fflush(stdout);
number=read(sockfd,&buff,500);
printf("good luck");
fflush(stdout);
}
答案 1 :(得分:1)
更改此阅读声明
number=read(sockfd,&buff,500); ==> number=read(sockfd,buff,500);
你只需要阅读缓冲区。