現在、ソケットを使用して列車のチケット予約システムを設計しています。クライアントは、チケットの検索、チケットの予約、チケットのキャンセルを行うことができます。クライアントは、SearchRequest、BookRequest、CancelRequest などのさまざまなオブジェクトをサーバーに送信します。サーバー側では、各リクエストを処理するために 3 つのスレッドプールが必要です。これが検索リクエストの処理方法です。
searchserverSocket = new ServerSocket(search_portNum);
search_pool = Executors.newFixedThreadPool
(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
public void service(){
while(true){
Socket search_socket = null;
try{
search_socket = searchserverSocket.accept();
SearchHandler search_han = new SearchHandler(search_socket,search_request);
search_pool.submit(search_han);
}catch(IOException e){
e.printStackTrace();
}
}
}
他の2つのリクエストを処理する方法が非常に混乱しています。別のポートで新しい ServerSocket を作成する必要がありますか? サーバーはどのようにして異なるタイプのリクエストを識別できますか?