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