为什么我们使用套接字服务器的无限循环来继续监听?

时间:2019-07-12 21:47:35

标签: sockets server serversocket

在Internet上的任何地方,要继续监听传入的套接字连接,服务器都需要运行无限循环。为什么我们对套接字服务器使用无限循环来保持监听状态?

例如:

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

这是21世纪,一切都是技术,因此,有没有其他方法可以替代无限循环。我们是否认为无限循环会浪费CPU周期,并会增加服务器的额外负载。诸如WhatsApp,Messenger,Viber等服务器的聊天应用程序是否也在运行无限循环方法?

我希望真正的怪人会回答而不是不赞成我的问题。谢谢

1 个答案:

答案 0 :(得分:2)

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