Java 请解释多线程服务器

Java multithreaded server explanation please

我正在制作一个客户端服务器程序,我正在制作一个多线程服务器,以便它可以同时处理多个客户端。我看过示例,但有些东西让我对它们的工作方式感到困惑。 两个类: http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KKMultiServer.java

http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KKMultiServerThread.java

用于多线程服务器,但让我感到困惑的部分如下:

while (listening) {
            new KKMultiServerThread(serverSocket.accept()).start();
        }

对我来说,服务器似乎正在创建无限量的 KKMultiServerThreads,当套接字没有连接时,它只是传递 null。这是如何工作的?

我还没有看到你的 code.But 我对这个问题有一些想法。

    serverSocket.accept()

是一种阻塞方式(函数)。如果您不输入任何内容,程序将等待您 input.I 认为它不会自动 return null。

ServerSocket.accept() 阻塞,直到出现传入连接。它不会 return null。