- java.lang.Object
-
- io.netty5.util.DefaultAttributeMap
-
- io.netty5.channel.AbstractChannel<P,L,R>
-
- io.netty5.channel.nio.AbstractNioChannel<P,L,R>
-
- io.netty5.channel.nio.AbstractNioMessageChannel<Channel,SocketAddress,SocketAddress>
-
- io.netty5.channel.socket.nio.NioServerSocketChannel
-
- All Implemented Interfaces:
Channel,ChannelOutboundInvoker,IoHandle,ServerChannel,ServerSocketChannel,AttributeMap,FuturePromiseFactory,Comparable<Channel>
public class NioServerSocketChannel extends AbstractNioMessageChannel<Channel,SocketAddress,SocketAddress> implements ServerSocketChannel
AServerSocketChannelimplementation which uses NIO selector based implementation to accept new connections.Available options
In addition to the options provided bySocketChannel,NioSocketChannelallows the following options in the option map:ChannelOptionINETINET6{@code UNIX {@link NioChannelOption} X X X
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty5.channel.AbstractChannel
AbstractChannel.DefaultAbstractChannelPipeline
-
-
Field Summary
-
Fields inherited from class io.netty5.channel.nio.AbstractNioChannel
readInterestOp
-
-
Constructor Summary
Constructors Constructor Description NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup)Create a new instanceNioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, ServerSocketChannel channel)Create a new instance using the givenServerSocketChannel.NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, ServerSocketChannel channel, ProtocolFamily family)Create a new instance using the givenServerSocketChannel.NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, SelectorProvider provider)Create a new instance using the givenSelectorProvider.NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, SelectorProvider provider, ProtocolFamily protocolFamily)Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidautoReadCleared()Is called onceAbstractChannel.setAutoRead(boolean)is called withfalseandAbstractChannel.isAutoRead()wastruebefore.EventLoopGroupchildEventLoopGroup()Returns theEventLoopGroupthat is used to register the childChannels on.protected booleancloseOnReadError(Throwable cause)protected voiddoBind(SocketAddress localAddress)Bind theChannelto theSocketAddressprotected booleandoConnect(SocketAddress remoteAddress, SocketAddress localAddress)Connect to remote peer.protected voiddoDisconnect()Disconnect thisChannelfrom its remote peerprotected booleandoFinishConnect(SocketAddress requestedRemoteAddress)Finish a connect request.protected intdoReadMessages(List<Object> buf)Read messages into the given array and return the amount which was read.protected voiddoShutdown(ChannelShutdownDirection direction)Shutdown one direction of theChannel.protected booleandoWriteMessage(Object msg, ChannelOutboundBuffer in)Write a message to the underlyingChannel.protected ObjectfilterOutboundMessage(Object msg)Invoked when a new message is added to aChannelOutboundBufferof thisAbstractChannel, so that theChannelimplementation converts the message to another.protected <T> TgetExtendedOption(ChannelOption<T> option)Override to add support for moreChannelOptions.booleanisActive()Returntrueif theChannelis active and so connected.protected booleanisExtendedOptionSupported(ChannelOption<?> option)Override to add support for moreChannelOptions.booleanisShutdown(ChannelShutdownDirection direction)protected ServerSocketChanneljavaChannel()protected SocketAddresslocalAddress0()Returns theSocketAddresswhich is bound locally.protected SocketAddressremoteAddress0()Return theSocketAddresswhich theChannelis connected to.protected <T> voidsetExtendedOption(ChannelOption<T> option, T value)Override to add support for moreChannelOptions.-
Methods inherited from class io.netty5.channel.nio.AbstractNioMessageChannel
continueOnWriteError, continueReading, doBeginRead, doWrite, readNow
-
Methods inherited from class io.netty5.channel.nio.AbstractNioChannel
clearReadPending, doClose, isOpen, isReadPending, newDirectBuffer, newDirectBuffer, removeReadOp, selectionKey, setReadPending, writeFlushed
-
Methods inherited from class io.netty5.channel.AbstractChannel
annotateConnectException, assertEventLoop, bufferAllocator, cacheAddresses, closeForciblyTransport, closeFuture, closeIfClosed, closeTransport, compareTo, deregisterTransport, ensureOpen, equals, executor, finishConnect, fireChannelActiveIfNotActiveBefore, getMaxMessagesPerWrite, getOption, getWriteSpinCount, handleWriteError, hashCode, id, isAllowHalfClosure, isAutoRead, isConnectPending, isOptionSupported, isRegistered, localAddress, metadata, newChannelPipeline, newSupportedIdentityOptionsSet, outboundBuffer, parent, pipeline, prepareToClose, readIfIsAutoRead, recvBufAllocHandle, remoteAddress, runAfterTransportAction, safeSetFailure, safeSetSuccess, setBufferAllocator, setOption, shutdownTransport, toString, validate, validateEventLoopGroup, validateFileRegion, writableBytes
-
Methods inherited from class io.netty5.util.DefaultAttributeMap
attr, hasAttr
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.netty5.util.AttributeMap
attr, hasAttr
-
Methods inherited from interface io.netty5.channel.Channel
bind, bufferAllocator, close, closeFuture, connect, connect, deregister, disconnect, executor, flush, getOption, id, isOpen, isOptionSupported, isWritable, localAddress, metadata, parent, pipeline, read, register, remoteAddress, sendOutboundEvent, setOption, shutdown, writableBytes, write, writeAndFlush
-
Methods inherited from interface io.netty5.channel.ChannelOutboundInvoker
newFailedFuture, newPromise, newSucceededFuture, newSucceededFuture
-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface io.netty5.channel.IoHandle
isRegistered
-
-
-
-
Constructor Detail
-
NioServerSocketChannel
public NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup)
Create a new instance
-
NioServerSocketChannel
public NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, SelectorProvider provider)
Create a new instance using the givenSelectorProvider.
-
NioServerSocketChannel
public NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, SelectorProvider provider, ProtocolFamily protocolFamily)
Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15).
-
NioServerSocketChannel
public NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, ServerSocketChannel channel)
Create a new instance using the givenServerSocketChannel.
-
NioServerSocketChannel
public NioServerSocketChannel(EventLoop eventLoop, EventLoopGroup childEventLoopGroup, ServerSocketChannel channel, ProtocolFamily family)
Create a new instance using the givenServerSocketChannel.
-
-
Method Detail
-
childEventLoopGroup
public EventLoopGroup childEventLoopGroup()
Description copied from interface:ServerChannelReturns theEventLoopGroupthat is used to register the childChannels on.- Specified by:
childEventLoopGroupin interfaceServerChannel
-
isActive
public boolean isActive()
Description copied from interface:ChannelReturntrueif theChannelis active and so connected.
-
getExtendedOption
protected <T> T getExtendedOption(ChannelOption<T> option)
Description copied from class:AbstractChannelOverride to add support for moreChannelOptions. You need to also call {@link super} after handling the extra options.- Overrides:
getExtendedOptionin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Type Parameters:
T- the value type.- Parameters:
option- theChannelOption.- Returns:
- the value for the option
-
setExtendedOption
protected <T> void setExtendedOption(ChannelOption<T> option, T value)
Description copied from class:AbstractChannelOverride to add support for moreChannelOptions. You need to also call {@link super} after handling the extra options.- Overrides:
setExtendedOptionin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Type Parameters:
T- the value type.- Parameters:
option- theChannelOption.
-
isExtendedOptionSupported
protected boolean isExtendedOptionSupported(ChannelOption<?> option)
Description copied from class:AbstractChannelOverride to add support for moreChannelOptions. You need to also call {@link super} after handling the extra options.- Overrides:
isExtendedOptionSupportedin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Parameters:
option- theChannelOption.- Returns:
trueif supported,falseotherwise.
-
javaChannel
protected ServerSocketChannel javaChannel()
- Overrides:
javaChannelin classAbstractNioChannel<Channel,SocketAddress,SocketAddress>
-
localAddress0
protected SocketAddress localAddress0()
Description copied from class:AbstractChannelReturns theSocketAddresswhich is bound locally.- Specified by:
localAddress0in classAbstractChannel<Channel,SocketAddress,SocketAddress>
-
doShutdown
protected void doShutdown(ChannelShutdownDirection direction) throws Exception
Description copied from class:AbstractChannelShutdown one direction of theChannel.- Specified by:
doShutdownin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Parameters:
direction- the direction to shutdown.- Throws:
Exception- thrown on error.
-
isShutdown
public boolean isShutdown(ChannelShutdownDirection direction)
Description copied from interface:Channel- Specified by:
isShutdownin interfaceChannel
-
doBind
protected void doBind(SocketAddress localAddress) throws Exception
Description copied from class:AbstractChannelBind theChannelto theSocketAddress- Specified by:
doBindin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Throws:
Exception
-
doReadMessages
protected int doReadMessages(List<Object> buf) throws Exception
Description copied from class:AbstractNioMessageChannelRead messages into the given array and return the amount which was read.- Specified by:
doReadMessagesin classAbstractNioMessageChannel<Channel,SocketAddress,SocketAddress>- Throws:
Exception
-
doConnect
protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress)
Description copied from class:AbstractChannelConnect to remote peer.- Specified by:
doConnectin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Parameters:
remoteAddress- the address of the remote peer.localAddress- the local address of this channel.- Returns:
trueif the connect was completed,falseifAbstractChannel.finishConnect()will be called later again to try finishing the connect.
-
doFinishConnect
protected boolean doFinishConnect(SocketAddress requestedRemoteAddress)
Description copied from class:AbstractChannelFinish a connect request.- Specified by:
doFinishConnectin classAbstractChannel<Channel,SocketAddress,SocketAddress>- Parameters:
requestedRemoteAddress- the remote address of the peer.- Returns:
trueif the connect was completed,falseifAbstractChannel.finishConnect()will be called later again to try finishing the connect.
-
remoteAddress0
protected SocketAddress remoteAddress0()
Description copied from class:AbstractChannelReturn theSocketAddresswhich theChannelis connected to.- Specified by:
remoteAddress0in classAbstractChannel<Channel,SocketAddress,SocketAddress>
-
doDisconnect
protected void doDisconnect()
Description copied from class:AbstractChannelDisconnect thisChannelfrom its remote peer- Specified by:
doDisconnectin classAbstractChannel<Channel,SocketAddress,SocketAddress>
-
doWriteMessage
protected boolean doWriteMessage(Object msg, ChannelOutboundBuffer in)
Description copied from class:AbstractNioMessageChannelWrite a message to the underlyingChannel.- Specified by:
doWriteMessagein classAbstractNioMessageChannel<Channel,SocketAddress,SocketAddress>- Returns:
trueif and only if the message has been written
-
filterOutboundMessage
protected final Object filterOutboundMessage(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<Channel,SocketAddress,SocketAddress>
-
autoReadCleared
protected void autoReadCleared()
Description copied from class:AbstractChannelIs called onceAbstractChannel.setAutoRead(boolean)is called withfalseandAbstractChannel.isAutoRead()wastruebefore.- Overrides:
autoReadClearedin classAbstractChannel<Channel,SocketAddress,SocketAddress>
-
closeOnReadError
protected boolean closeOnReadError(Throwable cause)
- Overrides:
closeOnReadErrorin classAbstractNioMessageChannel<Channel,SocketAddress,SocketAddress>
-
-