请多Java Java多线程服务器说明

时间:2015-04-11 04:55:16

标签: java multithreading sockets network-programming

我正在制作一个客户端服务器程序,我正在创建一个多线程服务器,因此它可以同时处理多个客户端。我看过一些例子,但有些东西让我对它们的工作方式感到困惑。 这两个类: 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。这是如何工作的?

2 个答案:

答案 0 :(得分:2)

我还没有看到你的代码。但我对这个问题有一些看法。在

    serverSocket.accept()

是阻塞方式(功能)。如果您没有输入内容,程序将等待您的输入。我认为它不会自动返回null。

答案 1 :(得分:0)

ServerSocket.accept()阻塞,直到发生传入连接。它不会返回null。