Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请解释Java多线程服务器_Java_Multithreading_Sockets_Network Programming - Fatal编程技术网

请解释Java多线程服务器

请解释Java多线程服务器,java,multithreading,sockets,network-programming,Java,Multithreading,Sockets,Network Programming,我正在制作一个客户机-服务器程序,我正在制作一个多线程服务器,这样它就可以同时处理多个客户机。我看过一些例子,但有些东西让我对它们的工作原理感到困惑。 两类: 用于多线程服务器,但让我困惑的是: while (listening) { new KKMultiServerThread(serverSocket.accept()).start(); } 在我看来,服务器似乎正在创建无限多的多服务器线程,而当套接字没有连接时,它只是通过null传递。这是如

我正在制作一个客户机-服务器程序,我正在制作一个多线程服务器,这样它就可以同时处理多个客户机。我看过一些例子,但有些东西让我对它们的工作原理感到困惑。 两类:

用于多线程服务器,但让我困惑的是:

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

在我看来,服务器似乎正在创建无限多的多服务器线程,而当套接字没有连接时,它只是通过null传递。这是如何工作的?

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

    serverSocket.accept()

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

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

这更有意义,感谢您为我澄清。如果您还没有这样做,请先阅读Java API文档,然后再问这些类型的问题。它通常非常详细地描述这类信息。例如说:“侦听与此套接字的连接并接受它。该方法将阻塞,直到建立连接为止。”