Package io.netty.channel.socket.nio
Class NioDatagramChannel
- java.lang.Object
-
- io.netty.util.DefaultAttributeMap
-
- io.netty.channel.AbstractChannel
-
- io.netty.channel.nio.AbstractNioChannel
-
- io.netty.channel.nio.AbstractNioMessageChannel
-
- io.netty.channel.socket.nio.NioDatagramChannel
-
- All Implemented Interfaces:
Channel,ChannelOutboundInvoker,DatagramChannel,AttributeMap,java.lang.Comparable<Channel>
public final class NioDatagramChannel extends AbstractNioMessageChannel implements DatagramChannel
An NIO datagramChannelthat sends and receives anAddressedEnvelope.- See Also:
AddressedEnvelope,DatagramPacket
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty.channel.nio.AbstractNioChannel
AbstractNioChannel.AbstractNioUnsafe, AbstractNioChannel.NioUnsafe
-
Nested classes/interfaces inherited from class io.netty.channel.AbstractChannel
AbstractChannel.AbstractUnsafe
-
Nested classes/interfaces inherited from interface io.netty.channel.Channel
Channel.Unsafe
-
-
Field Summary
-
Fields inherited from class io.netty.channel.nio.AbstractNioChannel
readInterestOp, readOps
-
-
Constructor Summary
Constructors Constructor Description NioDatagramChannel()Create a new instance which will use the Operation Systems defaultSocketProtocolFamily.NioDatagramChannel(InternetProtocolFamily ipFamily)Deprecated.NioDatagramChannel(SocketProtocolFamily protocolFamily)Create a new instance using the givenSocketProtocolFamily.NioDatagramChannel(java.nio.channels.DatagramChannel socket)Create a new instance from the givenDatagramChannel.NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider)Create a new instance using the givenSelectorProviderwhich will use the Operation Systems defaultSocketProtocolFamily.NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider, InternetProtocolFamily ipFamily)Deprecated.NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily protocolFamily)Create a new instance using the givenSelectorProviderandSocketProtocolFamily.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ChannelFutureblock(java.net.InetAddress multicastAddress, java.net.InetAddress sourceToBlock)Block the given sourceToBlock address for the given multicastAddressChannelFutureblock(java.net.InetAddress multicastAddress, java.net.InetAddress sourceToBlock, ChannelPromise promise)Block the given sourceToBlock address for the given multicastAddressChannelFutureblock(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress sourceToBlock)Block the given sourceToBlock address for the given multicastAddress on the given networkInterfaceChannelFutureblock(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 networkInterfaceprotected booleancloseOnReadError(java.lang.Throwable cause)DatagramChannelConfigconfig()Returns the configuration of this channel.protected booleancontinueOnWriteError()Returnstrueif we should continue the write loop on a write error.protected booleancontinueReading(RecvByteBufAllocator.Handle allocHandle)protected voiddoBind(java.net.SocketAddress localAddress)Bind theChannelto theSocketAddressprotected voiddoClose()Close theChannelprotected booleandoConnect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress)Connect to the remote peerprotected voiddoDisconnect()Disconnect thisChannelfrom its remote peerprotected voiddoFinishConnect()Finish the connectprotected intdoReadMessages(java.util.List<java.lang.Object> buf)Read messages into the given array and return the amount which was read.protected booleandoWriteMessage(java.lang.Object msg, ChannelOutboundBuffer in)Write a message to the underlyingChannel.protected java.lang.ObjectfilterOutboundMessage(java.lang.Object msg)Invoked when a new message is added to aChannelOutboundBufferof thisAbstractChannel, so that theChannelimplementation converts the message to another.booleanisActive()Returntrueif theChannelis active and so connected.booleanisConnected()Returntrueif theDatagramChannelis connected to the remote peer.protected java.nio.channels.DatagramChanneljavaChannel()ChannelFuturejoinGroup(java.net.InetAddress multicastAddress)Joins a multicast group and notifies theChannelFutureonce the operation completes.ChannelFuturejoinGroup(java.net.InetAddress multicastAddress, ChannelPromise promise)Joins a multicast group and notifies theChannelFutureonce the operation completes.ChannelFuturejoinGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source)Joins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.ChannelFuturejoinGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source, ChannelPromise promise)Joins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.ChannelFuturejoinGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface)Joins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.ChannelFuturejoinGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface, ChannelPromise promise)Joins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetAddress multicastAddress)Leaves a multicast group and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetAddress multicastAddress, ChannelPromise promise)Leaves a multicast group and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source)Leave the specified multicast group at the specified interface using the specified source and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source, ChannelPromise promise)Leave the specified multicast group at the specified interface using the specified source and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface)Leaves a multicast group on a specified local interface and notifies theChannelFutureonce the operation completes.ChannelFutureleaveGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface, ChannelPromise promise)Leaves a multicast group on a specified local interface and notifies theChannelFutureonce the operation completes.java.net.InetSocketAddresslocalAddress()Returns the local address where this channel is bound to.protected java.net.SocketAddresslocalAddress0()Returns theSocketAddresswhich is bound locally.ChannelMetadatametadata()java.net.InetSocketAddressremoteAddress()Returns the remote address where this channel is connected to.protected java.net.SocketAddressremoteAddress0()Return theSocketAddresswhich theChannelis connected to.protected voidsetReadPending(boolean readPending)Deprecated.-
Methods inherited from class io.netty.channel.nio.AbstractNioMessageChannel
doBeginRead, doWrite, newUnsafe
-
Methods inherited from class io.netty.channel.nio.AbstractNioChannel
addAndSubmit, clearReadPending, doDeregister, doRegister, isCompatible, isOpen, isReadPending, newDirectBuffer, newDirectBuffer, registration, removeAndSubmit, selectionKey, unsafe
-
Methods inherited from class io.netty.channel.AbstractChannel
closeFuture, compareTo, doRegister, doShutdownOutput, equals, eventLoop, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, maxMessagesPerWrite, newChannelPipeline, newId, parent, pipeline, toString, validateFileRegion, voidPromise
-
Methods inherited from class io.netty.util.DefaultAttributeMap
attr, hasAttr
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.netty.util.AttributeMap
attr, hasAttr
-
Methods inherited from interface io.netty.channel.Channel
alloc, bind, bind, bytesBeforeUnwritable, bytesBeforeWritable, close, close, closeFuture, connect, connect, connect, connect, deregister, deregister, disconnect, disconnect, eventLoop, flush, getOption, id, isOpen, isRegistered, isWritable, newFailedFuture, newProgressivePromise, newPromise, newSucceededFuture, parent, pipeline, read, setOption, unsafe, voidPromise, write, write, writeAndFlush, writeAndFlush
-
-
-
-
Constructor Detail
-
NioDatagramChannel
public NioDatagramChannel()
Create a new instance which will use the Operation Systems defaultSocketProtocolFamily.
-
NioDatagramChannel
public NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider)
Create a new instance using the givenSelectorProviderwhich will use the Operation Systems defaultSocketProtocolFamily.
-
NioDatagramChannel
@Deprecated public NioDatagramChannel(InternetProtocolFamily ipFamily)
Deprecated.Create a new instance using the givenInternetProtocolFamily. Ifnullis used it will depend on the Operation Systems default which will be chosen.
-
NioDatagramChannel
public NioDatagramChannel(SocketProtocolFamily protocolFamily)
Create a new instance using the givenSocketProtocolFamily. Ifnullis used it will depend on the Operation Systems default which will be chosen.
-
NioDatagramChannel
@Deprecated public NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider, InternetProtocolFamily ipFamily)Deprecated.Create a new instance using the givenSelectorProviderandInternetProtocolFamily. IfInternetProtocolFamilyisnullit will depend on the Operation Systems default which will be chosen.
-
NioDatagramChannel
public NioDatagramChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily protocolFamily)Create a new instance using the givenSelectorProviderandSocketProtocolFamily. IfSocketProtocolFamilyisnullit 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 givenDatagramChannel.
-
-
Method Detail
-
metadata
public ChannelMetadata metadata()
Description copied from interface:Channel
-
config
public DatagramChannelConfig config()
Description copied from interface:ChannelReturns the configuration of this channel.- Specified by:
configin interfaceChannel- Specified by:
configin interfaceDatagramChannel
-
isActive
public boolean isActive()
Description copied from interface:ChannelReturntrueif theChannelis active and so connected.
-
isConnected
public boolean isConnected()
Description copied from interface:DatagramChannelReturntrueif theDatagramChannelis connected to the remote peer.- Specified by:
isConnectedin interfaceDatagramChannel
-
javaChannel
protected java.nio.channels.DatagramChannel javaChannel()
- Overrides:
javaChannelin classAbstractNioChannel
-
localAddress0
protected java.net.SocketAddress localAddress0()
Description copied from class:AbstractChannelReturns theSocketAddresswhich is bound locally.- Specified by:
localAddress0in classAbstractChannel
-
remoteAddress0
protected java.net.SocketAddress remoteAddress0()
Description copied from class:AbstractChannelReturn theSocketAddresswhich theChannelis connected to.- Specified by:
remoteAddress0in classAbstractChannel
-
doBind
protected void doBind(java.net.SocketAddress localAddress) throws java.lang.ExceptionDescription copied from class:AbstractChannelBind theChannelto theSocketAddress- Specified by:
doBindin classAbstractChannel- Throws:
java.lang.Exception
-
doConnect
protected boolean doConnect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress) throws java.lang.ExceptionDescription copied from class:AbstractNioChannelConnect to the remote peer- Specified by:
doConnectin classAbstractNioChannel- Throws:
java.lang.Exception
-
doFinishConnect
protected void doFinishConnect() throws java.lang.ExceptionDescription copied from class:AbstractNioChannelFinish the connect- Specified by:
doFinishConnectin classAbstractNioChannel- Throws:
java.lang.Exception
-
doDisconnect
protected void doDisconnect() throws java.lang.ExceptionDescription copied from class:AbstractChannelDisconnect thisChannelfrom its remote peer- Specified by:
doDisconnectin classAbstractChannel- Throws:
java.lang.Exception
-
doClose
protected void doClose() throws java.lang.ExceptionDescription copied from class:AbstractChannelClose theChannel- Overrides:
doClosein classAbstractNioChannel- Throws:
java.lang.Exception
-
doReadMessages
protected int doReadMessages(java.util.List<java.lang.Object> buf) throws java.lang.ExceptionDescription copied from class:AbstractNioMessageChannelRead messages into the given array and return the amount which was read.- Specified by:
doReadMessagesin classAbstractNioMessageChannel- Throws:
java.lang.Exception
-
doWriteMessage
protected boolean doWriteMessage(java.lang.Object msg, ChannelOutboundBuffer in) throws java.lang.ExceptionDescription copied from class:AbstractNioMessageChannelWrite a message to the underlyingChannel.- Specified by:
doWriteMessagein classAbstractNioMessageChannel- Returns:
trueif and only if the message has been written- Throws:
java.lang.Exception
-
filterOutboundMessage
protected java.lang.Object filterOutboundMessage(java.lang.Object msg)
Description copied from class:AbstractChannelInvoked when a new message is added to aChannelOutboundBufferof thisAbstractChannel, so that theChannelimplementation converts the message to another. (e.g. heap buffer -> direct buffer)- Overrides:
filterOutboundMessagein classAbstractChannel
-
continueOnWriteError
protected boolean continueOnWriteError()
Description copied from class:AbstractNioMessageChannelReturnstrueif we should continue the write loop on a write error.- Overrides:
continueOnWriteErrorin classAbstractNioMessageChannel
-
localAddress
public java.net.InetSocketAddress localAddress()
Description copied from interface:ChannelReturns the local address where this channel is bound to. The returnedSocketAddressis supposed to be down-cast into more concrete type such asInetSocketAddressto retrieve the detailed information.- Specified by:
localAddressin interfaceChannel- Specified by:
localAddressin interfaceDatagramChannel- Overrides:
localAddressin classAbstractChannel- Returns:
- the local address of this channel.
nullif this channel is not bound.
-
remoteAddress
public java.net.InetSocketAddress remoteAddress()
Description copied from interface:ChannelReturns the remote address where this channel is connected to. The returnedSocketAddressis supposed to be down-cast into more concrete type such asInetSocketAddressto retrieve the detailed information.- Specified by:
remoteAddressin interfaceChannel- Specified by:
remoteAddressin interfaceDatagramChannel- Overrides:
remoteAddressin classAbstractChannel- Returns:
- the remote address of this channel.
nullif this channel is not connected. If this channel is not connected but it can receive messages from arbitrary remote addresses (e.g.DatagramChannel, useDefaultAddressedEnvelope.recipient()to determine the origination of the received message as this method will returnnull.
-
joinGroup
public ChannelFuture joinGroup(java.net.InetAddress multicastAddress)
Description copied from interface:DatagramChannelJoins a multicast group and notifies theChannelFutureonce the operation completes.- Specified by:
joinGroupin interfaceDatagramChannel
-
joinGroup
public ChannelFuture joinGroup(java.net.InetAddress multicastAddress, ChannelPromise promise)
Description copied from interface:DatagramChannelJoins a multicast group and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
joinGroupin interfaceDatagramChannel
-
joinGroup
public ChannelFuture joinGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface)
Description copied from interface:DatagramChannelJoins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.- Specified by:
joinGroupin interfaceDatagramChannel
-
joinGroup
public ChannelFuture joinGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface, ChannelPromise promise)
Description copied from interface:DatagramChannelJoins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
joinGroupin interfaceDatagramChannel
-
joinGroup
public ChannelFuture joinGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source)
Description copied from interface:DatagramChannelJoins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes.- Specified by:
joinGroupin interfaceDatagramChannel
-
joinGroup
public ChannelFuture joinGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source, ChannelPromise promise)
Description copied from interface:DatagramChannelJoins the specified multicast group at the specified interface and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
joinGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetAddress multicastAddress)
Description copied from interface:DatagramChannelLeaves a multicast group and notifies theChannelFutureonce the operation completes.- Specified by:
leaveGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetAddress multicastAddress, ChannelPromise promise)
Description copied from interface:DatagramChannelLeaves a multicast group and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
leaveGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface)
Description copied from interface:DatagramChannelLeaves a multicast group on a specified local interface and notifies theChannelFutureonce the operation completes.- Specified by:
leaveGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetSocketAddress multicastAddress, java.net.NetworkInterface networkInterface, ChannelPromise promise)
Description copied from interface:DatagramChannelLeaves a multicast group on a specified local interface and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
leaveGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source)
Description copied from interface:DatagramChannelLeave the specified multicast group at the specified interface using the specified source and notifies theChannelFutureonce the operation completes.- Specified by:
leaveGroupin interfaceDatagramChannel
-
leaveGroup
public ChannelFuture leaveGroup(java.net.InetAddress multicastAddress, java.net.NetworkInterface networkInterface, java.net.InetAddress source, ChannelPromise promise)
Description copied from interface:DatagramChannelLeave the specified multicast group at the specified interface using the specified source and notifies theChannelFutureonce the operation completes. The givenChannelFuturewill be notified and also returned.- Specified by:
leaveGroupin interfaceDatagramChannel
-
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:
blockin interfaceDatagramChannel
-
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:
blockin interfaceDatagramChannel
-
block
public ChannelFuture block(java.net.InetAddress multicastAddress, java.net.InetAddress sourceToBlock)
Block the given sourceToBlock address for the given multicastAddress- Specified by:
blockin interfaceDatagramChannel
-
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:
blockin interfaceDatagramChannel
-
setReadPending
@Deprecated protected void setReadPending(boolean readPending)
Deprecated.- Overrides:
setReadPendingin classAbstractNioChannel
-
closeOnReadError
protected boolean closeOnReadError(java.lang.Throwable cause)
- Overrides:
closeOnReadErrorin classAbstractNioMessageChannel
-
continueReading
protected boolean continueReading(RecvByteBufAllocator.Handle allocHandle)
- Overrides:
continueReadingin classAbstractNioMessageChannel
-
-