为什么我们对套接字服务器使用无限循环来保持监听?

Why the we use the infinite loop for the socket server to keep listening?

在 Internet 上的任何地方,当服务器需要继续侦听传入的套接字连接时,都需要 运行 无限循环。为什么我们使用无限循环让socket服务器一直监听?

例如:

while (true) {
    accept a connection;
    create a thread to deal with the client;
}

现在是21世纪,一切都是技术,那么,除了无限循环,还有其他方法吗?难道我们不认为无限循环会浪费 CPU 周期,并且会在服务器上增加额外的负载。 WhatsApp、Messenger、Viber 等聊天应用服务器是否也是 运行 无限循环方法?

我希望真正的极客能够回答而不是对我的问题投反对票。谢谢

在您看到的所有示例中,"accept a connection" 行都是阻塞调用。因此,您不会浪费 CPU 个周期。在建立新连接之前,您的代码将停止。然后它创建处理线程并再次开始等待。