为什么我们对套接字服务器使用无限循环来保持监听?
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 个周期。在建立新连接之前,您的代码将停止。然后它创建处理线程并再次开始等待。
在 Internet 上的任何地方,当服务器需要继续侦听传入的套接字连接时,都需要 运行 无限循环。为什么我们使用无限循环让socket服务器一直监听?
例如:
while (true) {
accept a connection;
create a thread to deal with the client;
}
现在是21世纪,一切都是技术,那么,除了无限循环,还有其他方法吗?难道我们不认为无限循环会浪费 CPU 周期,并且会在服务器上增加额外的负载。 WhatsApp、Messenger、Viber 等聊天应用服务器是否也是 运行 无限循环方法?
我希望真正的极客能够回答而不是对我的问题投反对票。谢谢
在您看到的所有示例中,"accept a connection" 行都是阻塞调用。因此,您不会浪费 CPU 个周期。在建立新连接之前,您的代码将停止。然后它创建处理线程并再次开始等待。