服务器支持多个客户端听?

时间:2011-10-12 02:18:54

标签: c++ c sockets client

我正在编写一个简单的服务器,只是为了好玩,我意识到第三步意味着调用listen(...)函数需要两个参数。第二个是backlog。虽然我不完全理解这个论点的含义,但我认为它排队了客户。所以假设我是对的,我想知道服务器如何向上移动队列,或者我是否真的要实现它?

我确实在网上找到了很多关于它的例子,但它们大多包含代码。我想要一个更理论上的解释。 谢谢!

1 个答案:

答案 0 :(得分:0)

是的你是对的 - 积压是可能连接的假定队列(在Linux上忽略AFAIK)

创建侦听套接字后,在其上调用accept()并假设套接字阻塞 - 在将第一个客户端请求从队列中拉出之前,接受调用不会返回。

所以你可以做点什么

listen();
while(int in_socket=accept())
{
    if(in_socket>0)
    // process each client in order they are received
}