java.nio.channels.Selector.provider()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(6.6k)|赞(0)|评价(0)|浏览(168)

本文整理了Java中java.nio.channels.Selector.provider()方法的一些代码示例,展示了Selector.provider()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Selector.provider()方法的具体详情如下:
包路径:java.nio.channels.Selector
类名称:Selector
方法名:provider

Selector.provider介绍

[英]Gets the provider of this selector.
[中]获取此选择器的提供程序。

代码示例

代码示例来源:origin: netty/netty

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: redisson/redisson

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: wildfly/wildfly

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: mpetazzoni/ttorrent

  1. @NotNull
  2. @Override
  3. public ServerSocketChannel channelFor(Selector selector) throws IOException {
  4. ServerSocketChannel myServerSocketChannel = selector.provider().openServerSocketChannel();
  5. myServerSocketChannel.configureBlocking(false);
  6. int bindPort = -1;
  7. for (int port = firstTryPort; port <= lastTryPort; port++) {
  8. try {
  9. InetSocketAddress tryAddress = new InetSocketAddress(port);
  10. myServerSocketChannel.socket().bind(tryAddress);
  11. bindPort = tryAddress.getPort();
  12. break;
  13. } catch (IOException e) {
  14. //try next port
  15. logger.debug("Could not bind to port {}, trying next port...", port);
  16. }
  17. }
  18. if (bindPort == -1) {
  19. logger.error(String.format(
  20. "No available ports in range [%d, %d] for the BitTorrent client!", firstTryPort, lastTryPort
  21. ));
  22. throw new IOException("No available port for the BitTorrent client!");
  23. }
  24. return myServerSocketChannel;
  25. }
  26. }

代码示例来源:origin: EsotericSoftware/kryonet

  1. public void connect (Selector selector, SocketAddress remoteAddress, int timeout) throws IOException {
  2. close();
  3. writeBuffer.clear();
  4. readBuffer.clear();
  5. readBuffer.flip();
  6. currentObjectLength = 0;
  7. try {
  8. SocketChannel socketChannel = selector.provider().openSocketChannel();
  9. Socket socket = socketChannel.socket();
  10. socket.setTcpNoDelay(true);
  11. // socket.setTrafficClass(IPTOS_LOWDELAY);
  12. socket.connect(remoteAddress, timeout); // Connect using blocking mode for simplicity.
  13. socketChannel.configureBlocking(false);
  14. this.socketChannel = socketChannel;
  15. selectionKey = socketChannel.register(selector, SelectionKey.OP_READ);
  16. selectionKey.attach(this);
  17. if (DEBUG) {
  18. debug("kryonet", "Port " + socketChannel.socket().getLocalPort() + "/TCP connected to: "
  19. + socketChannel.socket().getRemoteSocketAddress());
  20. }
  21. lastReadTime = lastWriteTime = System.currentTimeMillis();
  22. } catch (IOException ex) {
  23. close();
  24. IOException ioEx = new IOException("Unable to connect to: " + remoteAddress);
  25. ioEx.initCause(ex);
  26. throw ioEx;
  27. }
  28. }

代码示例来源:origin: EsotericSoftware/kryonet

  1. public void bind (Selector selector, InetSocketAddress localPort) throws IOException {
  2. close();
  3. readBuffer.clear();
  4. writeBuffer.clear();
  5. try {
  6. datagramChannel = selector.provider().openDatagramChannel();
  7. datagramChannel.socket().bind(localPort);
  8. datagramChannel.configureBlocking(false);
  9. selectionKey = datagramChannel.register(selector, SelectionKey.OP_READ);
  10. lastCommunicationTime = System.currentTimeMillis();
  11. } catch (IOException ex) {
  12. close();
  13. throw ex;
  14. }
  15. }

代码示例来源:origin: EsotericSoftware/kryonet

  1. public void connect (Selector selector, InetSocketAddress remoteAddress) throws IOException {
  2. close();
  3. readBuffer.clear();
  4. writeBuffer.clear();
  5. try {
  6. datagramChannel = selector.provider().openDatagramChannel();
  7. datagramChannel.socket().bind(null);
  8. datagramChannel.socket().connect(remoteAddress);
  9. datagramChannel.configureBlocking(false);
  10. selectionKey = datagramChannel.register(selector, SelectionKey.OP_READ);
  11. lastCommunicationTime = System.currentTimeMillis();
  12. connectedAddress = remoteAddress;
  13. } catch (IOException ex) {
  14. close();
  15. IOException ioEx = new IOException("Unable to connect to: " + remoteAddress);
  16. ioEx.initCause(ex);
  17. throw ioEx;
  18. }
  19. }

代码示例来源:origin: EsotericSoftware/kryonet

  1. /** @param udpPort May be null. */
  2. public void bind (InetSocketAddress tcpPort, InetSocketAddress udpPort) throws IOException {
  3. close();
  4. synchronized (updateLock) {
  5. selector.wakeup();
  6. try {
  7. serverChannel = selector.provider().openServerSocketChannel();
  8. serverChannel.socket().bind(tcpPort);
  9. serverChannel.configureBlocking(false);
  10. serverChannel.register(selector, SelectionKey.OP_ACCEPT);
  11. if (DEBUG) debug("kryonet", "Accepting connections on port: " + tcpPort + "/TCP");
  12. if (udpPort != null) {
  13. udp = new UdpConnection(serialization, objectBufferSize);
  14. udp.bind(selector, udpPort);
  15. if (DEBUG) debug("kryonet", "Accepting connections on port: " + udpPort + "/UDP");
  16. }
  17. } catch (IOException ex) {
  18. close();
  19. throw ex;
  20. }
  21. }
  22. if (INFO) info("kryonet", "Server opened.");
  23. }

代码示例来源:origin: apache/activemq-artemis

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: org.apache.activemq/artemis-jms-client-all

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: org.apache.hbase.thirdparty/hbase-shaded-netty

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: com.couchbase.client/core-io

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: com.datastax.oss/java-driver-core-shaded

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: apache/activemq-artemis

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: org.apache.ratis/ratis-proto-shaded

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: io.bitsensor/proto

  1. @Override
  2. public SelectorProvider provider() {
  3. return delegate.provider();
  4. }

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

  1. private void returnToPool(Selector selector) {
  2. SelectorProvider provider = selector.provider();
  3. List<Selector> providerPool = pool.get(provider);
  4. if (providerPool == null) {
  5. providerPool = new LinkedList<Selector>();
  6. pool.put(provider, providerPool);
  7. }
  8. providerPool.add(selector);
  9. }
  10. }

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

  1. private void returnToPool(Selector selector) {
  2. SelectorProvider provider = selector.provider();
  3. List<Selector> providerPool = pool.get(provider);
  4. if (providerPool == null) {
  5. providerPool = new LinkedList<Selector>();
  6. pool.put(provider, providerPool);
  7. }
  8. providerPool.add(selector);
  9. }
  10. }

代码示例来源:origin: org.jruby/jruby-core

  1. private synchronized void returnToPool(Selector selector) {
  2. openSelectors.remove(selector);
  3. if (selector.isOpen()) {
  4. SelectorProvider provider = selector.provider();
  5. List<Selector> providerPool = pool.get(provider);
  6. if (providerPool == null) {
  7. providerPool = new LinkedList<Selector>();
  8. pool.put(provider, providerPool);
  9. }
  10. providerPool.add(selector);
  11. }
  12. }
  13. }

代码示例来源:origin: org.jruby/jruby-complete

  1. private synchronized void returnToPool(Selector selector) {
  2. openSelectors.remove(selector);
  3. if (selector.isOpen()) {
  4. SelectorProvider provider = selector.provider();
  5. List<Selector> providerPool = pool.get(provider);
  6. if (providerPool == null) {
  7. providerPool = new LinkedList<Selector>();
  8. pool.put(provider, providerPool);
  9. }
  10. providerPool.add(selector);
  11. }
  12. }
  13. }

相关文章