org.jboss.netty.channel.socket.nio

## Class NioDatagramChannel

- java.lang.Object
- - org.jboss.netty.channel.AbstractChannel
  - - org.jboss.netty.channel.socket.nio.NioDatagramChannel

All Implemented Interfaces:
  Comparable<Channel>, Channel, DatagramChannel

    public final class NioDatagramChannel
    extends AbstractChannel
    implements DatagramChannel

Provides an NIO based `DatagramChannel`.

### Field Summary

### Fields inherited from interface org.jboss.netty.channel.Channel

`OP_NONE, OP_READ, OP_READ_WRITE, OP_WRITE`

### Method Summary

Methods
`ChannelFuture` `block(InetAddress multicastAddress, InetAddress sourceToBlock)` Block the given sourceToBlock address for the given multicastAddress
`ChannelFuture` `block(InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress sourceToBlock)` Block the given sourceToBlock address for the given multicastAddress on the given networkInterface
`NioDatagramChannelConfig` `getConfig()` Returns the configuration of this channel.
`int` `getInterestOps()` Returns the current `interestOps` of this channel.
`InetSocketAddress` `getLocalAddress()` Returns the local address where this channel is bound to.
`InetSocketAddress` `getRemoteAddress()` Returns the remote address where this channel is connected to.
`NioDatagramWorker` `getWorker()` Return the `AbstractNioWorker` that handle the IO of the `AbstractNioChannel`
`boolean` `isBound()` Returns `true` if and only if this channel is bound to a local address.
`boolean` `isConnected()` Returns `true` if and only if this channel is connected to a remote address.
`ChannelFuture` `joinGroup(InetAddress multicastAddress)` Joins a multicast group.
`ChannelFuture` `joinGroup(InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress source)` Joins the specified multicast group at the specified interface using the specified source.
`ChannelFuture` `joinGroup(InetSocketAddress multicastAddress, NetworkInterface networkInterface)` Joins the specified multicast group at the specified interface.
`ChannelFuture` `leaveGroup(InetAddress multicastAddress)` Leaves a multicast group.
`ChannelFuture` `leaveGroup(InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress source)` Leave the specified multicast group at the specified interface using the specified source.
`ChannelFuture` `leaveGroup(InetSocketAddress multicastAddress, NetworkInterface networkInterface)` Leaves a multicast group on a specified local interface.
`protected boolean` `setClosed()` Marks this channel as closed.
`ChannelFuture` `write(Object message, SocketAddress remoteAddress)` Sends a message to this channel asynchronously.

### Methods inherited from class org.jboss.netty.channel.AbstractChannel

`bind, close, compareTo, connect, disconnect, equals, getAttachment, getCloseFuture, getFactory, getId, getParent, getPipeline, getSucceededFuture, getUnsupportedOperationFuture, hashCode, isOpen, isReadable, isWritable, setAttachment, setInterestOps, setInterestOpsNow, setReadable, toString, unbind, write`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.jboss.netty.channel.socket.DatagramChannel

`getLocalAddress, getRemoteAddress`

### Methods inherited from interface org.jboss.netty.channel.Channel

`bind, close, connect, disconnect, getAttachment, getCloseFuture, getFactory, getId, getInterestOps, getParent, getPipeline, isOpen, isReadable, isWritable, setAttachment, setInterestOps, setReadable, unbind, write`

### Methods inherited from interface java.lang.Comparable

`compareTo`

### Method Detail

#### getWorker

    public NioDatagramWorker getWorker()

Return the `AbstractNioWorker` that handle the IO of the `AbstractNioChannel`

Returns:
  worker

#### isBound

    public boolean isBound()

Description copied from interface: `Channel`
Returns `true` if and only if this channel is bound to a local address.

Specified by:
  `isBound` in interface `Channel`

#### isConnected

    public boolean isConnected()

Description copied from interface: `Channel`
Returns `true` if and only if this channel is connected to a remote address.

Specified by:
  `isConnected` in interface `Channel`

#### setClosed

    protected boolean setClosed()

Description copied from class: `AbstractChannel`
Marks this channel as closed. This method is intended to be called by an internal component - please do not call it unless you know what you are doing.

Returns:
  `true` if and only if this channel was not marked as closed yet

#### getConfig

    public NioDatagramChannelConfig getConfig()

Description copied from interface: `Channel`
Returns the configuration of this channel.

Specified by:
  `getConfig` in interface `Channel`
Specified by:
  `getConfig` in interface `DatagramChannel`

#### joinGroup

    public ChannelFuture joinGroup(InetAddress multicastAddress)

Description copied from interface: `DatagramChannel`
Joins a multicast group.

Specified by:
  `joinGroup` in interface `DatagramChannel`

#### joinGroup

    public ChannelFuture joinGroup(InetSocketAddress multicastAddress,
                          NetworkInterface networkInterface)

Description copied from interface: `DatagramChannel`
Joins the specified multicast group at the specified interface.

Specified by:
  `joinGroup` in interface `DatagramChannel`

#### joinGroup

    public ChannelFuture joinGroup(InetAddress multicastAddress,
                          NetworkInterface networkInterface,
                          InetAddress source)

Joins the specified multicast group at the specified interface using the specified source.

#### leaveGroup

    public ChannelFuture leaveGroup(InetAddress multicastAddress)

Description copied from interface: `DatagramChannel`
Leaves a multicast group.

Specified by:
  `leaveGroup` in interface `DatagramChannel`

#### leaveGroup

    public ChannelFuture leaveGroup(InetSocketAddress multicastAddress,
                           NetworkInterface networkInterface)

Description copied from interface: `DatagramChannel`
Leaves a multicast group on a specified local interface.

Specified by:
  `leaveGroup` in interface `DatagramChannel`

#### leaveGroup

    public ChannelFuture leaveGroup(InetAddress multicastAddress,
                           NetworkInterface networkInterface,
                           InetAddress source)

Leave the specified multicast group at the specified interface using the specified source.

#### block

    public ChannelFuture block(InetAddress multicastAddress,
                      NetworkInterface networkInterface,
                      InetAddress sourceToBlock)

Block the given sourceToBlock address for the given multicastAddress on the given networkInterface

#### block

    public ChannelFuture block(InetAddress multicastAddress,
                      InetAddress sourceToBlock)

Block the given sourceToBlock address for the given multicastAddress

#### write

    public ChannelFuture write(Object message,
                      SocketAddress remoteAddress)

Description copied from interface: `Channel`
Sends a message to this channel asynchronously. It has an additional parameter that allows a user to specify where to send the specified message instead of this channel's current remote address. If this channel was created by a connectionless transport (e.g. `DatagramChannel`) and is not connected yet, you must specify non-null address. Otherwise, the write request will fail with `NotYetConnectedException` and an `'exceptionCaught'` event will be triggered.

Specified by:
  `write` in interface `Channel`
Overrides:
  `write` in class `AbstractChannel`
Parameters:
  `message` - the message to write
  `remoteAddress` - where to send the specified message. This method is identical to `Channel.write(Object)` if `null` is specified here.
Returns:
  the `ChannelFuture` which will be notified when the write request succeeds or fails

#### getLocalAddress

    public InetSocketAddress getLocalAddress()

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.

Returns:
  the local address of this channel. `null` if this channel is not bound.

#### getRemoteAddress

    public InetSocketAddress getRemoteAddress()

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.

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 `MessageEvent.getRemoteAddress()` to determine the origination of the received message as this method will return `null`.

#### getInterestOps

    public int getInterestOps()

Description copied from interface: `Channel`
Returns the current `interestOps` of this channel.

Specified by:
  `getInterestOps` in interface `Channel`
Overrides:
  `getInterestOps` in class `AbstractChannel`
Returns:
  `Channel.OP_NONE`, `Channel.OP_READ`, `Channel.OP_WRITE`, or `Channel.OP_READ_WRITE`