I am now design a train ticket booking system using socket. The client can search ticket, book ticket and cancel ticket. Clients will sent different objects to server,like SearchRequest, BookRequest and CancelRequest. On the server side,I want to have three threadpool to handle each request. Here is how I handle search request.

```
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();
            }
        }   
    }

```

I am now very confused how to handle other two request. Should I create a new ServerSocket on different port ? How can server identify different type of request ?