linux C套接字不在循环内打印

时间:2013-12-09 09:31:57

标签: c linux sockets unix networking

我试图在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函数中显示该消息。什么都没有打印出有循环的地方。

请告诉我这是怎么回事。我想我在这里错过了一些东西。

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试在printf之后添加fflush(stdout);

答案 1 :(得分:0)

从评论中的讨论到OP,我得出结论,在某些条件{@ 1}}中,代码中的某处被调用,关闭close(1)