Advertisement
Guest User

ServerSocketExecutor.java

a guest
Aug 29th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.04 KB | None | 0 0
  1. public class ServerSocketExecutor implements Runnable, Observer {
  2.     private static final Logger logger = getLogger(ServerSocketExecutor.class.getName());
  3.     ExecutorService executor;
  4.     ServerSocketListener serverSocket;
  5.     BlockingQueue<Socket> queue;
  6.     List<Integer> listeningPorts = Collections.emptyList();
  7.  
  8.     public ServerSocketExecutor(List<Integer> listeningPorts) {
  9.         this.listeningPorts = listeningPorts;
  10.         executor = Executors.newFixedThreadPool(listeningPorts.size());
  11.     }
  12.  
  13.     public void run() {
  14.         // Create new listening thread for each port to listen on
  15.         for (Integer port : listeningPorts) {
  16.             try {
  17.                 serverSocket = new ServerSocketListener(port);
  18.                 serverSocket.addObserver(this);
  19.                 executor.execute(serverSocket);
  20.  
  21.             } catch (IOException e) {
  22.                 logger.error(e);
  23.             }
  24.         }
  25.     }
  26.  
  27.     public void publishToQueue(BlockingQueue<Socket> queue) {
  28.         this.queue = queue;
  29.     }
  30.  
  31.     public void update(Observable o, Object socket) {
  32.         try {
  33.             queue.put((Socket) socket);
  34.         } catch (InterruptedException e) {
  35.             logger.error(e);
  36.         }
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement