【发布时间】:2023-03-25 13:18:01
【问题描述】:
我有一个代码示例,其中有一个包含 true 的 while 循环。我假设这将永远运行,直到程序或类停止。但是,我很困惑,因为每次运行 while 循环时都会生成一个新的 PrintWriter。我认为这将是一个问题。还创建了一个新线程。我是不是看错了这段代码。
public static void main (String[] args) {
new VerySimpleChatServer().go();
}
public void go() {
clientOutputStreams = new ArrayList();
try {
ServerSocket serverSock = new ServerSocket(5000);
while(true) {
Socket clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println(“got a connection”);
}
} catch(Exception ex) {
ex.printStackTrace();
}
} // close go
看起来,它只在建立新连接时运行,但代码的哪一部分证明了这一点。看起来好像在不断地创建一个新的作者和新的线程。
谁能解释一下?
【问题讨论】:
标签: java sockets while-loop