ServerSocket.accept 给了我多个连接,尽管我只连接了一次
ServerSocket.accept gives me multiple connections although I am only connecting once
我有一个为每个连接创建新线程的 ExecutorService:
boolean running;
Socket socket;
ExecutorService executorService= Executors.newCachedThreadPool();
ss=new ServerSocket(port);
while(running){
socket=ss.accept();
executorService.submit(new ConnectionThread(socket));
}
ConnectionThread 构造函数看起来像这样,运行 方法太长 post 这里:
Socket socket;
ConnectionThread(Socket socket){
System.out.println("connectionThread running...");
this.socket=socket;
}
当我在浏览器中刷新页面时,ConnectionThread 构造函数告诉我已创建多个线程。为什么会这样?
发生这种情况是因为浏览器出于不同目的打开了多个 TCP 连接。
我有一个为每个连接创建新线程的 ExecutorService:
boolean running;
Socket socket;
ExecutorService executorService= Executors.newCachedThreadPool();
ss=new ServerSocket(port);
while(running){
socket=ss.accept();
executorService.submit(new ConnectionThread(socket));
}
ConnectionThread 构造函数看起来像这样,运行 方法太长 post 这里:
Socket socket;
ConnectionThread(Socket socket){
System.out.println("connectionThread running...");
this.socket=socket;
}
当我在浏览器中刷新页面时,ConnectionThread 构造函数告诉我已创建多个线程。为什么会这样?
发生这种情况是因为浏览器出于不同目的打开了多个 TCP 连接。