Package io.netty.channel.socket.nio
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
AServerSocketChannelimplementation which uses NIO selector based implementation to accept new connections.
-
-
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 NioServerSocketChannel()Create 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancloseOnReadError(java.lang.Throwable cause)ServerSocketChannelConfigconfig()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 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.protected java.nio.channels.ServerSocketChanneljavaChannel()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.-
Methods inherited from class io.netty.channel.nio.AbstractNioMessageChannel
continueOnWriteError, continueReading, doBeginRead, doWrite, newUnsafe
-
Methods inherited from class io.netty.channel.nio.AbstractNioChannel
addAndSubmit, clearReadPending, doDeregister, doRegister, isCompatible, isOpen, isReadPending, newDirectBuffer, newDirectBuffer, registration, removeAndSubmit, selectionKey, setReadPending, 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
-
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 Detail
-
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
public ChannelMetadata metadata()
Description copied from interface:Channel
-
config
public ServerSocketChannelConfig config()
Description copied from interface:ChannelReturns the configuration of this channel.- Specified by:
configin interfaceChannel- Specified by:
configin interfaceServerSocketChannel
-
isActive
public boolean isActive()
Description copied from interface:ChannelReturntrueif theChannelis active and so connected.
-
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.ExceptionDescription 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.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
-
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
-
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.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 final java.lang.Object filterOutboundMessage(java.lang.Object msg) throws java.lang.ExceptionDescription 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
-
-