- 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.AbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
- io.netty5.channel.socket.nio.NioSocketChannel
-
- All Implemented Interfaces:
Channel,ChannelOutboundInvoker,IoHandle,SocketChannel,AttributeMap,FuturePromiseFactory,Comparable<Channel>
public class NioSocketChannel extends AbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress> implements SocketChannel
SocketChannelwhich uses NIO selector based implementation.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 NioSocketChannel(EventLoop eventLoop)Create a new instanceNioSocketChannel(EventLoop eventLoop, SocketChannel socket)Create a new instance using the givenSocketChannel.NioSocketChannel(EventLoop eventLoop, SelectorProvider provider)Create a new instance using the givenSelectorProvider.NioSocketChannel(EventLoop eventLoop, SelectorProvider provider, ProtocolFamily family)Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15).NioSocketChannel(NioServerSocketChannel parent, EventLoop eventLoop, SocketChannel socket)Create a new instanceNioSocketChannel(NioServerSocketChannel parent, EventLoop eventLoop, SocketChannel socket, ProtocolFamily family)Create a new instance
-
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.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 intdoReadBytes(Buffer buffer)Read bytes into the givenBufferand return the amount.protected voiddoShutdown(ChannelShutdownDirection direction)Shutdown one direction of theChannel.protected voiddoWrite(ChannelOutboundBuffer in)Flush the content of the given buffer to the remote peer.protected intdoWriteBytes(Buffer buf)protected longdoWriteFileRegion(FileRegion region)Write aFileRegionprotected <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 SocketChanneljavaChannel()protected SocketAddresslocalAddress0()Returns theSocketAddresswhich is bound locally.protected Future<Executor>prepareToClose()Prepares to close theChannel.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.AbstractNioByteChannel
clearOpWrite, doWrite0, filterOutboundMessage, incompleteWrite, readNow, setOpWrite
-
Methods inherited from class io.netty5.channel.nio.AbstractNioChannel
clearReadPending, doBeginRead, 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, 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, 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
-
Methods inherited from interface io.netty5.channel.socket.SocketChannel
parent
-
-
-
-
Constructor Detail
-
NioSocketChannel
public NioSocketChannel(EventLoop eventLoop)
Create a new instance
-
NioSocketChannel
public NioSocketChannel(EventLoop eventLoop, SelectorProvider provider)
Create a new instance using the givenSelectorProvider.
-
NioSocketChannel
public NioSocketChannel(EventLoop eventLoop, SelectorProvider provider, ProtocolFamily family)
Create a new instance using the givenSelectorProviderand protocol family (supported only since JDK 15).
-
NioSocketChannel
public NioSocketChannel(EventLoop eventLoop, SocketChannel socket)
Create a new instance using the givenSocketChannel.
-
NioSocketChannel
public NioSocketChannel(NioServerSocketChannel parent, EventLoop eventLoop, SocketChannel socket)
Create a new instance- Parameters:
parent- theChannelwhich created this instance ornullif it was created by the usereventLoop- theEventLoopto use for IO.socket- theSocketChannelwhich will be used
-
NioSocketChannel
public NioSocketChannel(NioServerSocketChannel parent, EventLoop eventLoop, SocketChannel socket, ProtocolFamily family)
Create a new instance- Parameters:
parent- theChannelwhich created this instance ornullif it was created by the usereventLoop- theEventLoopto use for IO.socket- theSocketChannelwhich will be usedfamily- theProtocolFamilythat was used to create thSocketChannel
-
-
Method Detail
-
javaChannel
protected SocketChannel javaChannel()
- Overrides:
javaChannelin classAbstractNioChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
isActive
public boolean isActive()
Description copied from interface:ChannelReturntrueif theChannelis active and so connected.
-
isShutdown
public boolean isShutdown(ChannelShutdownDirection direction)
Description copied from interface:Channel- Specified by:
isShutdownin interfaceChannel
-
doShutdown
protected void doShutdown(ChannelShutdownDirection direction) throws Exception
Description copied from class:AbstractChannelShutdown one direction of theChannel.- Specified by:
doShutdownin classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Parameters:
direction- the direction to shutdown.- Throws:
Exception- thrown on error.
-
localAddress0
protected SocketAddress localAddress0()
Description copied from class:AbstractChannelReturns theSocketAddresswhich is bound locally.- Specified by:
localAddress0in classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
remoteAddress0
protected SocketAddress remoteAddress0()
Description copied from class:AbstractChannelReturn theSocketAddresswhich theChannelis connected to.- Specified by:
remoteAddress0in classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
doBind
protected void doBind(SocketAddress localAddress) throws Exception
Description copied from class:AbstractChannelBind theChannelto theSocketAddress- Specified by:
doBindin classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Throws:
Exception
-
doConnect
protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception
Description copied from class:AbstractChannelConnect to remote peer.- Specified by:
doConnectin classAbstractChannel<NioServerSocketChannel,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.- Throws:
Exception- thrown on error.
-
doFinishConnect
protected boolean doFinishConnect(SocketAddress requestedRemoteAddress) throws Exception
Description copied from class:AbstractChannelFinish a connect request.- Specified by:
doFinishConnectin classAbstractChannel<NioServerSocketChannel,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.- Throws:
Exception- thrown on error.
-
doDisconnect
protected void doDisconnect() throws ExceptionDescription copied from class:AbstractChannelDisconnect thisChannelfrom its remote peer- Specified by:
doDisconnectin classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Throws:
Exception
-
doReadBytes
protected int doReadBytes(Buffer buffer) throws Exception
Description copied from class:AbstractNioByteChannelRead bytes into the givenBufferand return the amount.- Specified by:
doReadBytesin classAbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Throws:
Exception
-
doWriteBytes
protected int doWriteBytes(Buffer buf) throws Exception
Description copied from class:AbstractNioByteChannel- Specified by:
doWriteBytesin classAbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Parameters:
buf- theBufferfrom which the bytes should be written- Returns:
- amount the amount of written bytes
- Throws:
Exception
-
doWriteFileRegion
protected long doWriteFileRegion(FileRegion region) throws Exception
Description copied from class:AbstractNioByteChannelWrite aFileRegion- Specified by:
doWriteFileRegionin classAbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Parameters:
region- theFileRegionfrom which the bytes should be written- Returns:
- amount the amount of written bytes
- Throws:
Exception
-
doWrite
protected void doWrite(ChannelOutboundBuffer in) throws Exception
Description copied from class:AbstractChannelFlush the content of the given buffer to the remote peer.- Overrides:
doWritein classAbstractNioByteChannel<NioServerSocketChannel,SocketAddress,SocketAddress>- Throws:
Exception
-
prepareToClose
protected Future<Executor> prepareToClose()
Description copied from class:AbstractChannelPrepares to close theChannel. If this method returns anExecutor, the caller must call theExecutor.execute(Runnable)method with a task that callsAbstractChannel.doClose()on the returnedExecutor. If this method returnsnull,AbstractChannel.doClose()must be called from the caller thread. (i.e.EventLoop)- Overrides:
prepareToClosein classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
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<NioServerSocketChannel,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<NioServerSocketChannel,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<NioServerSocketChannel,SocketAddress,SocketAddress>- Parameters:
option- theChannelOption.- Returns:
trueif supported,falseotherwise.
-
autoReadCleared
protected void autoReadCleared()
Description copied from class:AbstractChannelIs called onceAbstractChannel.setAutoRead(boolean)is called withfalseandAbstractChannel.isAutoRead()wastruebefore.- Overrides:
autoReadClearedin classAbstractChannel<NioServerSocketChannel,SocketAddress,SocketAddress>
-
-