Class NioDatagramChannel

    • Field Detail

      • DEFAULT_SELECTOR_PROVIDER

        private static final java.nio.channels.spi.SelectorProvider DEFAULT_SELECTOR_PROVIDER
      • EXPECTED_TYPES

        private static final java.lang.String EXPECTED_TYPES
      • memberships

        private java.util.Map<java.net.InetAddress,​java.util.List<java.nio.channels.MembershipKey>> memberships
    • Constructor Detail

      • NioDatagramChannel

        public NioDatagramChannel()
        Create a new instance which will use the Operation Systems default InternetProtocolFamily.
      • NioDatagramChannel

        public NioDatagramChannel​(java.nio.channels.spi.SelectorProvider provider)
        Create a new instance using the given SelectorProvider which will use the Operation Systems default InternetProtocolFamily.
      • NioDatagramChannel

        public NioDatagramChannel​(InternetProtocolFamily ipFamily)
        Create a new instance using the given InternetProtocolFamily. If null is used it will depend on the Operation Systems default which will be chosen.
      • NioDatagramChannel

        public NioDatagramChannel​(java.nio.channels.DatagramChannel socket)
        Create a new instance from the given DatagramChannel.
    • Method Detail

      • newSocket

        private static java.nio.channels.DatagramChannel newSocket​(java.nio.channels.spi.SelectorProvider provider)
      • newSocket

        private static java.nio.channels.DatagramChannel newSocket​(java.nio.channels.spi.SelectorProvider provider,
                                                                   InternetProtocolFamily ipFamily)
      • checkJavaVersion

        private static void checkJavaVersion()
      • isActive

        public boolean isActive()
        Description copied from interface: Channel
        Return true if the Channel is active and so connected.
        Specified by:
        isActive in interface Channel
      • localAddress0

        protected java.net.SocketAddress localAddress0()
        Description copied from class: AbstractChannel
        Returns the SocketAddress which is bound locally.
        Specified by:
        localAddress0 in class AbstractChannel
      • doBind

        protected void doBind​(java.net.SocketAddress localAddress)
                       throws java.lang.Exception
        Description copied from class: AbstractChannel
        Bind the Channel to the SocketAddress
        Specified by:
        doBind in class AbstractChannel
        Throws:
        java.lang.Exception
      • doBind0

        private void doBind0​(java.net.SocketAddress localAddress)
                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • doConnect

        protected boolean doConnect​(java.net.SocketAddress remoteAddress,
                                    java.net.SocketAddress localAddress)
                             throws java.lang.Exception
        Description copied from class: AbstractNioChannel
        Connect to the remote peer
        Specified by:
        doConnect in class AbstractNioChannel
        Throws:
        java.lang.Exception
      • doDisconnect

        protected void doDisconnect()
                             throws java.lang.Exception
        Description copied from class: AbstractChannel
        Disconnect this Channel from its remote peer
        Specified by:
        doDisconnect in class AbstractChannel
        Throws:
        java.lang.Exception
      • doReadMessages

        protected int doReadMessages​(java.util.List<java.lang.Object> buf)
                              throws java.lang.Exception
        Description copied from class: AbstractNioMessageChannel
        Read messages into the given array and return the amount which was read.
        Specified by:
        doReadMessages in class AbstractNioMessageChannel
        Throws:
        java.lang.Exception
      • checkUnresolved

        private static void checkUnresolved​(AddressedEnvelope<?,​?> envelope)
      • isSingleDirectBuffer

        private static boolean isSingleDirectBuffer​(ByteBuf buf)
        Checks if the specified buffer is a direct buffer and is composed of a single NIO buffer. (We check this because otherwise we need to make it a non-composite buffer.)
      • localAddress

        public java.net.InetSocketAddress localAddress()
        Description copied from interface: Channel
        Returns the local address where this channel is bound to. The returned SocketAddress is supposed to be down-cast into more concrete type such as InetSocketAddress to retrieve the detailed information.
        Specified by:
        localAddress in interface Channel
        Specified by:
        localAddress in interface DatagramChannel
        Overrides:
        localAddress in class AbstractChannel
        Returns:
        the local address of this channel. null if this channel is not bound.
      • remoteAddress

        public java.net.InetSocketAddress remoteAddress()
        Description copied from interface: Channel
        Returns the remote address where this channel is connected to. The returned SocketAddress is supposed to be down-cast into more concrete type such as InetSocketAddress to retrieve the detailed information.
        Specified by:
        remoteAddress in interface Channel
        Specified by:
        remoteAddress in interface DatagramChannel
        Overrides:
        remoteAddress in class AbstractChannel
        Returns:
        the remote address of this channel. null if this channel is not connected. If this channel is not connected but it can receive messages from arbitrary remote addresses (e.g. DatagramChannel, use DefaultAddressedEnvelope.recipient() to determine the origination of the received message as this method will return null.
      • joinGroup

        public ChannelFuture joinGroup​(java.net.InetSocketAddress multicastAddress,
                                       java.net.NetworkInterface networkInterface)
        Description copied from interface: DatagramChannel
        Joins the specified multicast group at the specified interface and notifies the ChannelFuture once the operation completes.
        Specified by:
        joinGroup in interface DatagramChannel
      • joinGroup

        public ChannelFuture joinGroup​(java.net.InetAddress multicastAddress,
                                       java.net.NetworkInterface networkInterface,
                                       java.net.InetAddress source)
        Description copied from interface: DatagramChannel
        Joins the specified multicast group at the specified interface and notifies the ChannelFuture once the operation completes.
        Specified by:
        joinGroup in interface DatagramChannel
      • joinGroup

        public ChannelFuture joinGroup​(java.net.InetAddress multicastAddress,
                                       java.net.NetworkInterface networkInterface,
                                       java.net.InetAddress source,
                                       ChannelPromise promise)
        Description copied from interface: DatagramChannel
        Joins the specified multicast group at the specified interface and notifies the ChannelFuture once the operation completes. The given ChannelFuture will be notified and also returned.
        Specified by:
        joinGroup in interface DatagramChannel
      • leaveGroup

        public ChannelFuture leaveGroup​(java.net.InetSocketAddress multicastAddress,
                                        java.net.NetworkInterface networkInterface)
        Description copied from interface: DatagramChannel
        Leaves a multicast group on a specified local interface and notifies the ChannelFuture once the operation completes.
        Specified by:
        leaveGroup in interface DatagramChannel
      • leaveGroup

        public ChannelFuture leaveGroup​(java.net.InetAddress multicastAddress,
                                        java.net.NetworkInterface networkInterface,
                                        java.net.InetAddress source)
        Description copied from interface: DatagramChannel
        Leave the specified multicast group at the specified interface using the specified source and notifies the ChannelFuture once the operation completes.
        Specified by:
        leaveGroup in interface DatagramChannel
      • leaveGroup

        public ChannelFuture leaveGroup​(java.net.InetAddress multicastAddress,
                                        java.net.NetworkInterface networkInterface,
                                        java.net.InetAddress source,
                                        ChannelPromise promise)
        Description copied from interface: DatagramChannel
        Leave the specified multicast group at the specified interface using the specified source and notifies the ChannelFuture once the operation completes. The given ChannelFuture will be notified and also returned.
        Specified by:
        leaveGroup in interface DatagramChannel
      • block

        public ChannelFuture block​(java.net.InetAddress multicastAddress,
                                   java.net.NetworkInterface networkInterface,
                                   java.net.InetAddress sourceToBlock)
        Block the given sourceToBlock address for the given multicastAddress on the given networkInterface
        Specified by:
        block in interface DatagramChannel
      • block

        public ChannelFuture block​(java.net.InetAddress multicastAddress,
                                   java.net.NetworkInterface networkInterface,
                                   java.net.InetAddress sourceToBlock,
                                   ChannelPromise promise)
        Block the given sourceToBlock address for the given multicastAddress on the given networkInterface
        Specified by:
        block in interface DatagramChannel
      • block

        public ChannelFuture block​(java.net.InetAddress multicastAddress,
                                   java.net.InetAddress sourceToBlock)
        Block the given sourceToBlock address for the given multicastAddress
        Specified by:
        block in interface DatagramChannel
      • block

        public ChannelFuture block​(java.net.InetAddress multicastAddress,
                                   java.net.InetAddress sourceToBlock,
                                   ChannelPromise promise)
        Block the given sourceToBlock address for the given multicastAddress
        Specified by:
        block in interface DatagramChannel
      • clearReadPending0

        void clearReadPending0()