我试图在C中制作一个简单的服务器。 它工作正常。当我添加一个循环来接收连接时,printf()似乎不起作用。
listen(mysocket, 5);
while (1) {
consock = accept(mysocket, (struct sockaddr*)&client, &socksize);
printf("incoming connection from %s \n", inet_ntoa(client.sin_addr));
send(consock, message, strlen(message), 0);
close(consock);
}
close(mysocket);
如果我删除了while循环,它会在printf函数中显示该消息。什么都没有打印出有循环的地方。
请告诉我这是怎么回事。我想我在这里错过了一些东西。
谢谢!
答案 0 :(得分:0)
尝试在printf之后添加fflush(stdout);
。
答案 1 :(得分:0)
从评论中的讨论到OP,我得出结论,在某些条件{@ 1}}中,代码中的某处被调用,关闭close(1)
。