@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@NotNull @Override public ServerSocketChannel channelFor(Selector selector) throws IOException { ServerSocketChannel myServerSocketChannel = selector.provider().openServerSocketChannel(); myServerSocketChannel.configureBlocking(false); int bindPort = -1; for (int port = firstTryPort; port <= lastTryPort; port++) { try { InetSocketAddress tryAddress = new InetSocketAddress(port); myServerSocketChannel.socket().bind(tryAddress); bindPort = tryAddress.getPort(); break; } catch (IOException e) { //try next port logger.debug("Could not bind to port {}, trying next port...", port); } } if (bindPort == -1) { logger.error(String.format( "No available ports in range [%d, %d] for the BitTorrent client!", firstTryPort, lastTryPort )); throw new IOException("No available port for the BitTorrent client!"); } return myServerSocketChannel; } }
public void connect (Selector selector, SocketAddress remoteAddress, int timeout) throws IOException { close(); writeBuffer.clear(); readBuffer.clear(); readBuffer.flip(); currentObjectLength = 0; try { SocketChannel socketChannel = selector.provider().openSocketChannel(); Socket socket = socketChannel.socket(); socket.setTcpNoDelay(true); // socket.setTrafficClass(IPTOS_LOWDELAY); socket.connect(remoteAddress, timeout); // Connect using blocking mode for simplicity. socketChannel.configureBlocking(false); this.socketChannel = socketChannel; selectionKey = socketChannel.register(selector, SelectionKey.OP_READ); selectionKey.attach(this); if (DEBUG) { debug("kryonet", "Port " + socketChannel.socket().getLocalPort() + "/TCP connected to: " + socketChannel.socket().getRemoteSocketAddress()); } lastReadTime = lastWriteTime = System.currentTimeMillis(); } catch (IOException ex) { close(); IOException ioEx = new IOException("Unable to connect to: " + remoteAddress); ioEx.initCause(ex); throw ioEx; } }
public void bind (Selector selector, InetSocketAddress localPort) throws IOException { close(); readBuffer.clear(); writeBuffer.clear(); try { datagramChannel = selector.provider().openDatagramChannel(); datagramChannel.socket().bind(localPort); datagramChannel.configureBlocking(false); selectionKey = datagramChannel.register(selector, SelectionKey.OP_READ); lastCommunicationTime = System.currentTimeMillis(); } catch (IOException ex) { close(); throw ex; } }
public void connect (Selector selector, InetSocketAddress remoteAddress) throws IOException { close(); readBuffer.clear(); writeBuffer.clear(); try { datagramChannel = selector.provider().openDatagramChannel(); datagramChannel.socket().bind(null); datagramChannel.socket().connect(remoteAddress); datagramChannel.configureBlocking(false); selectionKey = datagramChannel.register(selector, SelectionKey.OP_READ); lastCommunicationTime = System.currentTimeMillis(); connectedAddress = remoteAddress; } catch (IOException ex) { close(); IOException ioEx = new IOException("Unable to connect to: " + remoteAddress); ioEx.initCause(ex); throw ioEx; } }
/** @param udpPort May be null. */ public void bind (InetSocketAddress tcpPort, InetSocketAddress udpPort) throws IOException { close(); synchronized (updateLock) { selector.wakeup(); try { serverChannel = selector.provider().openServerSocketChannel(); serverChannel.socket().bind(tcpPort); serverChannel.configureBlocking(false); serverChannel.register(selector, SelectionKey.OP_ACCEPT); if (DEBUG) debug("kryonet", "Accepting connections on port: " + tcpPort + "/TCP"); if (udpPort != null) { udp = new UdpConnection(serialization, objectBufferSize); udp.bind(selector, udpPort); if (DEBUG) debug("kryonet", "Accepting connections on port: " + udpPort + "/UDP"); } } catch (IOException ex) { close(); throw ex; } } if (INFO) info("kryonet", "Server opened."); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
@Override public SelectorProvider provider() { return delegate.provider(); }
private void returnToPool(Selector selector) { SelectorProvider provider = selector.provider(); List<Selector> providerPool = pool.get(provider); if (providerPool == null) { providerPool = new LinkedList<Selector>(); pool.put(provider, providerPool); } providerPool.add(selector); } }
private void returnToPool(Selector selector) { SelectorProvider provider = selector.provider(); List<Selector> providerPool = pool.get(provider); if (providerPool == null) { providerPool = new LinkedList<Selector>(); pool.put(provider, providerPool); } providerPool.add(selector); } }
private synchronized void returnToPool(Selector selector) { openSelectors.remove(selector); if (selector.isOpen()) { SelectorProvider provider = selector.provider(); List<Selector> providerPool = pool.get(provider); if (providerPool == null) { providerPool = new LinkedList<Selector>(); pool.put(provider, providerPool); } providerPool.add(selector); } } }
private synchronized void returnToPool(Selector selector) { openSelectors.remove(selector); if (selector.isOpen()) { SelectorProvider provider = selector.provider(); List<Selector> providerPool = pool.get(provider); if (providerPool == null) { providerPool = new LinkedList<Selector>(); pool.put(provider, providerPool); } providerPool.add(selector); } } }