Package io.netty.channel.socket
Interface SocketChannelConfig
-
- All Superinterfaces:
ChannelConfig
,DuplexChannelConfig
- All Known Subinterfaces:
OioSocketChannelConfig
- All Known Implementing Classes:
DefaultOioSocketChannelConfig
,DefaultSocketChannelConfig
,EpollSocketChannelConfig
,KQueueSocketChannelConfig
public interface SocketChannelConfig extends DuplexChannelConfig
AChannelConfig
for aSocketChannel
.Available options
In addition to the options provided byDuplexChannelConfig
,SocketChannelConfig
allows the following options in the option map:
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description int
getReceiveBufferSize()
Gets theStandardSocketOptions.SO_RCVBUF
option.int
getSendBufferSize()
Gets theStandardSocketOptions.SO_SNDBUF
option.int
getSoLinger()
Gets theStandardSocketOptions.SO_LINGER
option.int
getTrafficClass()
Gets theStandardSocketOptions.IP_TOS
option.boolean
isKeepAlive()
Gets theStandardSocketOptions.SO_KEEPALIVE
option.boolean
isReuseAddress()
Gets theStandardSocketOptions.SO_REUSEADDR
option.boolean
isTcpNoDelay()
Gets theStandardSocketOptions.TCP_NODELAY
option.SocketChannelConfig
setAllocator(ByteBufAllocator allocator)
Set theByteBufAllocator
which is used for the channel to allocate buffers.SocketChannelConfig
setAllowHalfClosure(boolean allowHalfClosure)
Sets whether the channel should not close itself when its remote peer shuts down output to make the connection half-closed.SocketChannelConfig
setAutoClose(boolean autoClose)
Sets whether theChannel
should be closed automatically and immediately on write failure.SocketChannelConfig
setAutoRead(boolean autoRead)
Sets ifChannelHandlerContext.read()
will be invoked automatically so that a user application doesn't need to call it at all.SocketChannelConfig
setConnectTimeoutMillis(int connectTimeoutMillis)
Sets the connect timeout of the channel in milliseconds.SocketChannelConfig
setKeepAlive(boolean keepAlive)
Sets theStandardSocketOptions.SO_KEEPALIVE
option.SocketChannelConfig
setMaxMessagesPerRead(int maxMessagesPerRead)
Deprecated.SocketChannelConfig
setMessageSizeEstimator(MessageSizeEstimator estimator)
Set theMessageSizeEstimator
which is used for the channel to detect the size of a message.SocketChannelConfig
setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Sets the performance preferences as specified inSocket.setPerformancePreferences(int, int, int)
.SocketChannelConfig
setReceiveBufferSize(int receiveBufferSize)
Sets theStandardSocketOptions.SO_RCVBUF
option.SocketChannelConfig
setRecvByteBufAllocator(RecvByteBufAllocator allocator)
Set theRecvByteBufAllocator
which is used for the channel to allocate receive buffers.SocketChannelConfig
setReuseAddress(boolean reuseAddress)
Sets theStandardSocketOptions.SO_REUSEADDR
option.SocketChannelConfig
setSendBufferSize(int sendBufferSize)
Sets theStandardSocketOptions.SO_SNDBUF
option.SocketChannelConfig
setSoLinger(int soLinger)
Sets theStandardSocketOptions.SO_LINGER
option.SocketChannelConfig
setTcpNoDelay(boolean tcpNoDelay)
Sets theStandardSocketOptions.TCP_NODELAY
option.SocketChannelConfig
setTrafficClass(int trafficClass)
Sets theStandardSocketOptions.IP_TOS
option.SocketChannelConfig
setWriteBufferWaterMark(WriteBufferWaterMark writeBufferWaterMark)
Set theWriteBufferWaterMark
which is used for setting the high and low water mark of the write buffer.SocketChannelConfig
setWriteSpinCount(int writeSpinCount)
Sets the maximum loop count for a write operation untilWritableByteChannel.write(ByteBuffer)
returns a non-zero value.-
Methods inherited from interface io.netty.channel.ChannelConfig
getAllocator, getConnectTimeoutMillis, getMaxMessagesPerRead, getMessageSizeEstimator, getOption, getOptions, getRecvByteBufAllocator, getWriteBufferHighWaterMark, getWriteBufferLowWaterMark, getWriteBufferWaterMark, getWriteSpinCount, isAutoClose, isAutoRead, setOption, setOptions, setWriteBufferHighWaterMark, setWriteBufferLowWaterMark
-
Methods inherited from interface io.netty.channel.socket.DuplexChannelConfig
isAllowHalfClosure
-
-
-
-
Method Detail
-
isTcpNoDelay
boolean isTcpNoDelay()
Gets theStandardSocketOptions.TCP_NODELAY
option. Please note that the default value of this option istrue
unlike the operating system default (false
). However, for some buggy platforms, such as Android, that shows erratic behavior with Nagle's algorithm disabled, the default value remains to befalse
.
-
setTcpNoDelay
SocketChannelConfig setTcpNoDelay(boolean tcpNoDelay)
Sets theStandardSocketOptions.TCP_NODELAY
option. Please note that the default value of this option istrue
unlike the operating system default (false
). However, for some buggy platforms, such as Android, that shows erratic behavior with Nagle's algorithm disabled, the default value remains to befalse
.
-
getSoLinger
int getSoLinger()
Gets theStandardSocketOptions.SO_LINGER
option.
-
setSoLinger
SocketChannelConfig setSoLinger(int soLinger)
Sets theStandardSocketOptions.SO_LINGER
option.
-
getSendBufferSize
int getSendBufferSize()
Gets theStandardSocketOptions.SO_SNDBUF
option.
-
setSendBufferSize
SocketChannelConfig setSendBufferSize(int sendBufferSize)
Sets theStandardSocketOptions.SO_SNDBUF
option.
-
getReceiveBufferSize
int getReceiveBufferSize()
Gets theStandardSocketOptions.SO_RCVBUF
option.
-
setReceiveBufferSize
SocketChannelConfig setReceiveBufferSize(int receiveBufferSize)
Sets theStandardSocketOptions.SO_RCVBUF
option.
-
isKeepAlive
boolean isKeepAlive()
Gets theStandardSocketOptions.SO_KEEPALIVE
option.
-
setKeepAlive
SocketChannelConfig setKeepAlive(boolean keepAlive)
Sets theStandardSocketOptions.SO_KEEPALIVE
option.
-
getTrafficClass
int getTrafficClass()
Gets theStandardSocketOptions.IP_TOS
option.
-
setTrafficClass
SocketChannelConfig setTrafficClass(int trafficClass)
Sets theStandardSocketOptions.IP_TOS
option.
-
isReuseAddress
boolean isReuseAddress()
Gets theStandardSocketOptions.SO_REUSEADDR
option.
-
setReuseAddress
SocketChannelConfig setReuseAddress(boolean reuseAddress)
Sets theStandardSocketOptions.SO_REUSEADDR
option.
-
setPerformancePreferences
SocketChannelConfig setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Sets the performance preferences as specified inSocket.setPerformancePreferences(int, int, int)
.
-
setAllowHalfClosure
SocketChannelConfig setAllowHalfClosure(boolean allowHalfClosure)
Description copied from interface:DuplexChannelConfig
Sets whether the channel should not close itself when its remote peer shuts down output to make the connection half-closed. Iftrue
the connection is not closed when the remote peer shuts down output. Instead,ChannelInboundHandler.userEventTriggered(ChannelHandlerContext, Object)
is invoked with aChannelInputShutdownEvent
object. Iffalse
, the connection is closed automatically.- Specified by:
setAllowHalfClosure
in interfaceDuplexChannelConfig
-
setConnectTimeoutMillis
SocketChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis)
Description copied from interface:ChannelConfig
Sets the connect timeout of the channel in milliseconds. If theChannel
does not support connect operation, this property is not used at all, and therefore will be ignored.- Specified by:
setConnectTimeoutMillis
in interfaceChannelConfig
- Parameters:
connectTimeoutMillis
- the connect timeout in milliseconds.0
to disable.
-
setMaxMessagesPerRead
@Deprecated SocketChannelConfig setMaxMessagesPerRead(int maxMessagesPerRead)
Deprecated.- Specified by:
setMaxMessagesPerRead
in interfaceChannelConfig
- Specified by:
setMaxMessagesPerRead
in interfaceDuplexChannelConfig
-
setWriteSpinCount
SocketChannelConfig setWriteSpinCount(int writeSpinCount)
Description copied from interface:ChannelConfig
Sets the maximum loop count for a write operation untilWritableByteChannel.write(ByteBuffer)
returns a non-zero value. It is similar to what a spin lock is used for in concurrency programming. It improves memory utilization and write throughput depending on the platform that JVM runs on. The default value is16
.- Specified by:
setWriteSpinCount
in interfaceChannelConfig
- Specified by:
setWriteSpinCount
in interfaceDuplexChannelConfig
-
setAllocator
SocketChannelConfig setAllocator(ByteBufAllocator allocator)
Description copied from interface:ChannelConfig
Set theByteBufAllocator
which is used for the channel to allocate buffers.- Specified by:
setAllocator
in interfaceChannelConfig
- Specified by:
setAllocator
in interfaceDuplexChannelConfig
-
setRecvByteBufAllocator
SocketChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator allocator)
Description copied from interface:ChannelConfig
Set theRecvByteBufAllocator
which is used for the channel to allocate receive buffers.- Specified by:
setRecvByteBufAllocator
in interfaceChannelConfig
- Specified by:
setRecvByteBufAllocator
in interfaceDuplexChannelConfig
-
setAutoRead
SocketChannelConfig setAutoRead(boolean autoRead)
Description copied from interface:ChannelConfig
Sets ifChannelHandlerContext.read()
will be invoked automatically so that a user application doesn't need to call it at all. The default value istrue
.- Specified by:
setAutoRead
in interfaceChannelConfig
- Specified by:
setAutoRead
in interfaceDuplexChannelConfig
-
setAutoClose
SocketChannelConfig setAutoClose(boolean autoClose)
Description copied from interface:ChannelConfig
Sets whether theChannel
should be closed automatically and immediately on write failure. The default istrue
.- Specified by:
setAutoClose
in interfaceChannelConfig
- Specified by:
setAutoClose
in interfaceDuplexChannelConfig
-
setMessageSizeEstimator
SocketChannelConfig setMessageSizeEstimator(MessageSizeEstimator estimator)
Description copied from interface:ChannelConfig
Set theMessageSizeEstimator
which is used for the channel to detect the size of a message.- Specified by:
setMessageSizeEstimator
in interfaceChannelConfig
- Specified by:
setMessageSizeEstimator
in interfaceDuplexChannelConfig
-
setWriteBufferWaterMark
SocketChannelConfig setWriteBufferWaterMark(WriteBufferWaterMark writeBufferWaterMark)
Description copied from interface:ChannelConfig
Set theWriteBufferWaterMark
which is used for setting the high and low water mark of the write buffer.- Specified by:
setWriteBufferWaterMark
in interfaceChannelConfig
- Specified by:
setWriteBufferWaterMark
in interfaceDuplexChannelConfig
-
-