Java多线程服务器解释请

标签 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。这是如何工作的?

最佳答案

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

    serverSocket.accept()

是一个阻塞方式(函数)。如果你不输入任何内容,程序就会等待你的输入。我认为它不会自动返回null。

关于Java多线程服务器解释请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574267/

相关文章:

java - 性能:JAVA排列

java - openjpa,更新,错误 'PK has non-default value'

swift - 在后台或主线程中执行更新时设置 GIF 图像会阻止 UI

java - Java 多久同步一次内存?

c# - 套接字编程 - 连接尝试失败异常

Java 套接字和丢弃的连接

c++ - socks.h 中的一个问题

Java 安卓工作室 : change an attribute of a View inside its own listener

java - 使用javascript修改固定在顶部的元素的css属性

python - 为列表中的项目生成一个新线程