さまざまなクライアントからメッセージを受信してからメッセージを返信するマルチスレッドサーバーを作成しようとしています。実行サーバーを使用してスレッドの作成を管理しています。しかし、私がそれを正しく行っているかどうかはわかりません。以前にエグゼキューターサービスを使用したことがありませんか? そして、このライン
executor.execute(new Handler(client));
ハンドラーが抽象的で、初期化できないという問題がありますか? 修正方法は?実行サービスはポートのバインドに関する問題を解決しますか? クライアントのリクエストのキューのようなものになりますか?thx事前に
package serverx;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Handler;
public class ServerX {
public static void main(String [] args){
ExecutorService executor = Executors.newFixedThreadPool(30);
ServerSocket server;
try{
server= new ServerSocket(5555);
System.out.println ("Server started!");
while(true) {
try{
Socket client = server.accept();
//Thread t= new Thread (new Handler(client));
//t.start();
executor.execute(new Handler(client));
}
catch (IOException e) {
e.printStackTrace();
}
}
}catch (IOException el){
el.printStackTrace();
}
}
}
ハンドラ:
public class Handler implements Runnable{
private Socket client;
public Handler(Socket client){
this.client=client;}
public void run(){
//............
}
}