我正在制作一个客户端服务器程序,并且正在制作一个多线程服务器,以便它可以同时处理多个客户端。我看过一些例子,但有些东西让我对它们的工作方式感到困惑。 两个类: 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。这是如何工作的?
最佳答案
我还没有看到你的代码。但我对这个问题有一些想法。
serverSocket.accept()
是一个阻塞方式(函数)。如果你不输入任何内容,程序就会等待你的输入。我认为它不会自动返回null。
关于Java多线程服务器解释请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574267/