Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ServerSocketExecutor implements Runnable, Observer {
- private static final Logger logger = getLogger(ServerSocketExecutor.class.getName());
- ExecutorService executor;
- ServerSocketListener serverSocket;
- BlockingQueue<Socket> queue;
- List<Integer> listeningPorts = Collections.emptyList();
- public ServerSocketExecutor(List<Integer> listeningPorts) {
- this.listeningPorts = listeningPorts;
- executor = Executors.newFixedThreadPool(listeningPorts.size());
- }
- public void run() {
- // Create new listening thread for each port to listen on
- for (Integer port : listeningPorts) {
- try {
- serverSocket = new ServerSocketListener(port);
- serverSocket.addObserver(this);
- executor.execute(serverSocket);
- } catch (IOException e) {
- logger.error(e);
- }
- }
- }
- public void publishToQueue(BlockingQueue<Socket> queue) {
- this.queue = queue;
- }
- public void update(Observable o, Object socket) {
- try {
- queue.put((Socket) socket);
- } catch (InterruptedException e) {
- logger.error(e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement