【发布时间】:2015-06-16 22:19:30
【问题描述】:
我正在制作一个客户端服务器程序,我正在制作一个多线程服务器,以便它可以同时处理多个客户端。我看过一些例子,但有些东西让我对它们的工作方式感到困惑。 两个班: 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。这是如何工作的?
【问题讨论】:
-
如果您还没有这样做,请在询问此类问题之前开始阅读 Java API 文档。它通常相当详细地描述这类信息。例如
ServerSocket.accept()说:“侦听与此套接字建立的连接并接受它。该方法阻塞直到建立连接。”(强调我的)
标签: java multithreading sockets network-programming