package com.juick.jabber.ws; import java.net.InetSocketAddress; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.Iterator; /** * * @author ugnich */ public class WSConnections implements Runnable { Selector sel; @Override public void run() { try { sel = Selector.open(); ServerSocketChannel listensock = ServerSocketChannel.open(); listensock.configureBlocking(false); listensock.socket().bind(new InetSocketAddress(8081)); listensock.register(sel, SelectionKey.OP_ACCEPT); while (true) { sel.select(); Iterator it = sel.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey selKey = it.next(); it.remove(); ServerSocketChannel ssChannel = (ServerSocketChannel) selKey.channel(); SocketChannel sChannel = ssChannel.accept(); System.out.println(sChannel.socket().getRemoteSocketAddress().toString() + " ACCEPTED"); sChannel.configureBlocking(false); sChannel.register(WSData.sel, SelectionKey.OP_READ); } } } catch (Exception e) { System.err.println("WSConnections: " + e); } } }