Class NioServerSocketChannel
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.NioServerSocketChannel
- All Implemented Interfaces:
Channel, ChannelOutboundInvoker, ServerChannel, ServerSocketChannel, AttributeMap, java.lang.Comparable<Channel>
public class NioServerSocketChannel
extends AbstractNioMessageChannel
implements ServerSocketChannel
A
ServerSocketChannel implementation which uses
NIO selector based implementation to accept new connections.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classNested classes/interfaces inherited from class AbstractNioChannel
AbstractNioChannel.AbstractNioUnsafe, AbstractNioChannel.NioUnsafeNested classes/interfaces inherited from class AbstractChannel
AbstractChannel.AbstractUnsafeNested classes/interfaces inherited from interface Channel
Channel.Unsafe -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ServerSocketChannelConfigprivate static final java.nio.channels.spi.SelectorProviderprivate static final InternalLoggerprivate static final ChannelMetadataprivate static final java.lang.reflect.MethodFields inherited from class AbstractNioChannel
readInterestOp, readOps -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new instanceNioServerSocketChannel(java.nio.channels.ServerSocketChannel channel) Create a new instance using the givenServerSocketChannel.NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider) Create a new instance using the givenSelectorProvider.NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider, InternetProtocolFamily family) Deprecated.NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily family) Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15). -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancloseOnReadError(java.lang.Throwable cause) config()Returns the configuration of this channel.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 voidDisconnect thisChannelfrom its remote peerprotected voidFinish 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 final 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.protected java.nio.channels.ServerSocketChanneljava.net.InetSocketAddressReturns the local address where this channel is bound to.protected java.net.SocketAddressReturns theSocketAddresswhich is bound locally.metadata()private static java.nio.channels.ServerSocketChannelnewChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily family) java.net.InetSocketAddressReturns the remote address where this channel is connected to.protected java.net.SocketAddressReturn theSocketAddresswhich theChannelis connected to.Methods inherited from class AbstractNioMessageChannel
continueOnWriteError, continueReading, doBeginRead, doWrite, newUnsafeMethods inherited from class AbstractNioChannel
addAndSubmit, clearReadPending, doDeregister, doRegister, isCompatible, isOpen, isReadPending, newDirectBuffer, newDirectBuffer, registration, removeAndSubmit, selectionKey, setReadPending, unsafeMethods inherited from class AbstractChannel
closeFuture, compareTo, doRegister, doShutdownOutput, equals, eventLoop, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, maxMessagesPerWrite, newChannelPipeline, newId, parent, pipeline, toString, validateFileRegion, voidPromiseMethods inherited from class DefaultAttributeMap
attr, hasAttrMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface AttributeMap
attr, hasAttrMethods inherited from interface 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, writeAndFlushMethods inherited from interface java.lang.Comparable
compareTo
-
Field Details
-
METADATA
-
DEFAULT_SELECTOR_PROVIDER
private static final java.nio.channels.spi.SelectorProvider DEFAULT_SELECTOR_PROVIDER -
logger
-
OPEN_SERVER_SOCKET_CHANNEL_WITH_FAMILY
private static final java.lang.reflect.Method OPEN_SERVER_SOCKET_CHANNEL_WITH_FAMILY -
config
-
-
Constructor Details
-
NioServerSocketChannel
public NioServerSocketChannel()Create a new instance -
NioServerSocketChannel
public NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider) Create a new instance using the givenSelectorProvider. -
NioServerSocketChannel
@Deprecated public NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider, InternetProtocolFamily family) Deprecated.Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15). -
NioServerSocketChannel
public NioServerSocketChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily family) Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15). -
NioServerSocketChannel
public NioServerSocketChannel(java.nio.channels.ServerSocketChannel channel) Create a new instance using the givenServerSocketChannel.
-
-
Method Details
-
newChannel
private static java.nio.channels.ServerSocketChannel newChannel(java.nio.channels.spi.SelectorProvider provider, SocketProtocolFamily family) -
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 interfaceServerSocketChannel- Overrides:
localAddressin classAbstractChannel- Returns:
- the local address of this channel.
nullif this channel is not bound.
-
metadata
Description copied from interface:Channel -
config
Description copied from interface:ChannelReturns the configuration of this channel.- Specified by:
configin interfaceChannel- Specified by:
configin interfaceServerSocketChannel
-
isActive
-
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 interfaceServerSocketChannel- 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.
-
javaChannel
protected java.nio.channels.ServerSocketChannel javaChannel()- Overrides:
javaChannelin classAbstractNioChannel
-
localAddress0
protected java.net.SocketAddress localAddress0()Description copied from class:AbstractChannelReturns theSocketAddresswhich is bound locally.- Specified by:
localAddress0in classAbstractChannel
-
doBind
protected void doBind(java.net.SocketAddress localAddress) throws java.lang.Exception Description copied from class:AbstractChannelBind theChannelto theSocketAddress- Specified by:
doBindin 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.Exception Description copied from class:AbstractNioMessageChannelRead messages into the given array and return the amount which was read.- Specified by:
doReadMessagesin classAbstractNioMessageChannel- Throws:
java.lang.Exception
-
doConnect
protected boolean doConnect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress) throws java.lang.Exception Description 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
-
remoteAddress0
protected java.net.SocketAddress remoteAddress0()Description copied from class:AbstractChannelReturn theSocketAddresswhich theChannelis connected to.- Specified by:
remoteAddress0in classAbstractChannel
-
doDisconnect
protected void doDisconnect() throws java.lang.ExceptionDescription copied from class:AbstractChannelDisconnect thisChannelfrom its remote peer- Specified by:
doDisconnectin classAbstractChannel- Throws:
java.lang.Exception
-
doWriteMessage
protected boolean doWriteMessage(java.lang.Object msg, ChannelOutboundBuffer in) throws java.lang.Exception Description 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 final java.lang.Object filterOutboundMessage(java.lang.Object msg) throws java.lang.Exception 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- Throws:
java.lang.Exception
-
closeOnReadError
protected boolean closeOnReadError(java.lang.Throwable cause) - Overrides:
closeOnReadErrorin classAbstractNioMessageChannel
-
NioServerSocketChannel(SelectorProvider, SocketProtocolFamily)