public final class EpollSocketChannelConfig extends EpollChannelConfig implements SocketChannelConfig
channel
Modifier and Type | Method and Description |
---|---|
<T> T |
getOption(ChannelOption<T> option)
Return the value of the given
ChannelOption |
Map<ChannelOption<?>,Object> |
getOptions()
Return all set
ChannelOption 's. |
int |
getReceiveBufferSize()
Gets the
StandardSocketOptions.SO_RCVBUF option. |
int |
getSendBufferSize()
Gets the
StandardSocketOptions.SO_SNDBUF option. |
int |
getSoBusyPoll()
Get the
SO_BUSY_POLL option on the socket. |
int |
getSoLinger()
Gets the
StandardSocketOptions.SO_LINGER option. |
int |
getTcpKeepCnt()
Get the
TCP_KEEPCNT option on the socket. |
int |
getTcpKeepIdle()
Get the
TCP_KEEPIDLE option on the socket. |
int |
getTcpKeepIntvl()
Get the
TCP_KEEPINTVL option on the socket. |
long |
getTcpNotSentLowAt()
Get the
TCP_NOTSENT_LOWAT option on the socket. |
int |
getTcpUserTimeout()
Get the
TCP_USER_TIMEOUT option on the socket. |
int |
getTrafficClass()
Gets the
StandardSocketOptions.IP_TOS option. |
boolean |
isAllowHalfClosure()
Returns
true if and only if the channel should not close itself when its remote
peer shuts down output to make the connection half-closed. |
boolean |
isIpBindAddressNoPort()
Returns
true if the IP_BIND_ADDRESS_NO_PORT option is set. |
boolean |
isIpTransparent()
|
boolean |
isKeepAlive()
Gets the
StandardSocketOptions.SO_KEEPALIVE option. |
boolean |
isReuseAddress()
Gets the
StandardSocketOptions.SO_REUSEADDR option. |
boolean |
isTcpCork()
Get the
TCP_CORK option on the socket. |
boolean |
isTcpFastOpenConnect()
Returns
true if TCP fast open is enabled, false otherwise. |
boolean |
isTcpNoDelay()
Gets the
StandardSocketOptions.TCP_NODELAY option. |
boolean |
isTcpQuickAck()
|
EpollSocketChannelConfig |
setAllocator(ByteBufAllocator allocator)
Set the
ByteBufAllocator which is used for the channel
to allocate buffers. |
EpollSocketChannelConfig |
setAllowHalfClosure(boolean allowHalfClosure)
Sets whether the channel should not close itself when its remote peer shuts down output to
make the connection half-closed.
|
EpollSocketChannelConfig |
setAutoClose(boolean autoClose)
Sets whether the
Channel should be closed automatically and immediately on write failure. |
EpollSocketChannelConfig |
setAutoRead(boolean autoRead)
Sets if
ChannelHandlerContext.read() will be invoked automatically so that a user application doesn't
need to call it at all. |
EpollSocketChannelConfig |
setConnectTimeoutMillis(int connectTimeoutMillis)
Sets the connect timeout of the channel in milliseconds.
|
EpollSocketChannelConfig |
setEpollMode(EpollMode mode)
Set the
EpollMode used. |
EpollSocketChannelConfig |
setIpBindAddressNoPort(boolean ipBindAddressNoPort)
Set the IP_BIND_ADDRESS_NO_PORT option on the underlying Channel.
|
EpollSocketChannelConfig |
setIpTransparent(boolean transparent)
|
EpollSocketChannelConfig |
setKeepAlive(boolean keepAlive)
Sets the
StandardSocketOptions.SO_KEEPALIVE option. |
EpollSocketChannelConfig |
setMaxMessagesPerRead(int maxMessagesPerRead)
Deprecated.
|
EpollSocketChannelConfig |
setMessageSizeEstimator(MessageSizeEstimator estimator)
Set the
MessageSizeEstimator which is used for the channel
to detect the size of a message. |
<T> boolean |
setOption(ChannelOption<T> option,
T value)
Sets a configuration property with the specified name and value.
|
EpollSocketChannelConfig |
setPerformancePreferences(int connectionTime,
int latency,
int bandwidth)
Sets the performance preferences as specified in
Socket.setPerformancePreferences(int, int, int) . |
EpollSocketChannelConfig |
setReceiveBufferSize(int receiveBufferSize)
Sets the
StandardSocketOptions.SO_RCVBUF option. |
EpollSocketChannelConfig |
setRecvByteBufAllocator(RecvByteBufAllocator allocator)
Set the
RecvByteBufAllocator which is used for the channel to allocate receive buffers. |
EpollSocketChannelConfig |
setReuseAddress(boolean reuseAddress)
Sets the
StandardSocketOptions.SO_REUSEADDR option. |
EpollSocketChannelConfig |
setSendBufferSize(int sendBufferSize)
Sets the
StandardSocketOptions.SO_SNDBUF option. |
EpollSocketChannelConfig |
setSoBusyPoll(int loopMicros)
Set the
SO_BUSY_POLL option on the socket. |
EpollSocketChannelConfig |
setSoLinger(int soLinger)
Sets the
StandardSocketOptions.SO_LINGER option. |
EpollSocketChannelConfig |
setTcpCork(boolean tcpCork)
Set the
TCP_CORK option on the socket. |
EpollSocketChannelConfig |
setTcpFastOpenConnect(boolean fastOpenConnect)
Enables client TCP fast open.
|
EpollSocketChannelConfig |
setTcpKeepCnt(int probes)
Set the
TCP_KEEPCNT option on the socket. |
EpollSocketChannelConfig |
setTcpKeepCntl(int probes)
Deprecated.
|
EpollSocketChannelConfig |
setTcpKeepIdle(int seconds)
Set the
TCP_KEEPIDLE option on the socket. |
EpollSocketChannelConfig |
setTcpKeepIntvl(int seconds)
Set the
TCP_KEEPINTVL option on the socket. |
EpollSocketChannelConfig |
setTcpMd5Sig(Map<InetAddress,byte[]> keys)
Set the
TCP_MD5SIG option on the socket. |
EpollSocketChannelConfig |
setTcpNoDelay(boolean tcpNoDelay)
Sets the
StandardSocketOptions.TCP_NODELAY option. |
EpollSocketChannelConfig |
setTcpNotSentLowAt(long tcpNotSentLowAt)
Set the
TCP_NOTSENT_LOWAT option on the socket. |
EpollSocketChannelConfig |
setTcpQuickAck(boolean quickAck)
Set the
TCP_QUICKACK option on the socket. |
EpollSocketChannelConfig |
setTcpUserTimeout(int milliseconds)
Set the
TCP_USER_TIMEOUT option on the socket. |
EpollSocketChannelConfig |
setTrafficClass(int trafficClass)
Sets the
StandardSocketOptions.IP_TOS option. |
EpollSocketChannelConfig |
setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
Deprecated.
|
EpollSocketChannelConfig |
setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
Deprecated.
|
EpollSocketChannelConfig |
setWriteBufferWaterMark(WriteBufferWaterMark writeBufferWaterMark)
Set the
WriteBufferWaterMark which is used for setting the high and low
water mark of the write buffer. |
EpollSocketChannelConfig |
setWriteSpinCount(int writeSpinCount)
Sets the maximum loop count for a write operation until
WritableByteChannel.write(ByteBuffer) returns a non-zero value. |
autoReadCleared, getEpollMode, getMaxBytesPerGatheringWrite, setMaxBytesPerGatheringWrite, socket
getAllocator, getConnectTimeoutMillis, getMaxMessagesPerRead, getMaxMessagesPerWrite, getMessageSizeEstimator, getOptions, getRecvByteBufAllocator, getWriteBufferHighWaterMark, getWriteBufferLowWaterMark, getWriteBufferWaterMark, getWriteSpinCount, isAutoClose, isAutoRead, setMaxMessagesPerWrite, setOptions, validate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAllocator, getConnectTimeoutMillis, getMaxMessagesPerRead, getMessageSizeEstimator, getRecvByteBufAllocator, getWriteBufferHighWaterMark, getWriteBufferLowWaterMark, getWriteBufferWaterMark, getWriteSpinCount, isAutoClose, isAutoRead, setOptions
public Map<ChannelOption<?>,Object> getOptions()
ChannelConfig
ChannelOption
's.getOptions
in interface ChannelConfig
getOptions
in class EpollChannelConfig
public <T> T getOption(ChannelOption<T> option)
ChannelConfig
ChannelOption
getOption
in interface ChannelConfig
getOption
in class EpollChannelConfig
public <T> boolean setOption(ChannelOption<T> option, T value)
ChannelConfig
public boolean setOption(ChannelOption<T> option, T value) { if (super.setOption(option, value)) { return true; } if (option.equals(additionalOption)) { .... return true; } return false; }
setOption
in interface ChannelConfig
setOption
in class EpollChannelConfig
true
if and only if the property has been setpublic int getReceiveBufferSize()
SocketChannelConfig
StandardSocketOptions.SO_RCVBUF
option.getReceiveBufferSize
in interface SocketChannelConfig
public int getSendBufferSize()
SocketChannelConfig
StandardSocketOptions.SO_SNDBUF
option.getSendBufferSize
in interface SocketChannelConfig
public int getSoLinger()
SocketChannelConfig
StandardSocketOptions.SO_LINGER
option.getSoLinger
in interface SocketChannelConfig
public int getTrafficClass()
SocketChannelConfig
StandardSocketOptions.IP_TOS
option.getTrafficClass
in interface SocketChannelConfig
public boolean isKeepAlive()
SocketChannelConfig
StandardSocketOptions.SO_KEEPALIVE
option.isKeepAlive
in interface SocketChannelConfig
public boolean isReuseAddress()
SocketChannelConfig
StandardSocketOptions.SO_REUSEADDR
option.isReuseAddress
in interface SocketChannelConfig
public boolean isTcpNoDelay()
SocketChannelConfig
StandardSocketOptions.TCP_NODELAY
option. Please note that the default value of this option
is true
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 be
false
.isTcpNoDelay
in interface SocketChannelConfig
public boolean isTcpCork()
TCP_CORK
option on the socket. See man 7 tcp
for more details.public int getSoBusyPoll()
SO_BUSY_POLL
option on the socket. See man 7 tcp
for more details.public long getTcpNotSentLowAt()
TCP_NOTSENT_LOWAT
option on the socket. See man 7 tcp
for more details.public int getTcpKeepIdle()
TCP_KEEPIDLE
option on the socket. See man 7 tcp
for more details.public int getTcpKeepIntvl()
TCP_KEEPINTVL
option on the socket. See man 7 tcp
for more details.public int getTcpKeepCnt()
TCP_KEEPCNT
option on the socket. See man 7 tcp
for more details.public int getTcpUserTimeout()
TCP_USER_TIMEOUT
option on the socket. See man 7 tcp
for more details.public EpollSocketChannelConfig setKeepAlive(boolean keepAlive)
SocketChannelConfig
StandardSocketOptions.SO_KEEPALIVE
option.setKeepAlive
in interface SocketChannelConfig
public EpollSocketChannelConfig setPerformancePreferences(int connectionTime, int latency, int bandwidth)
SocketChannelConfig
Socket.setPerformancePreferences(int, int, int)
.setPerformancePreferences
in interface SocketChannelConfig
public EpollSocketChannelConfig setReceiveBufferSize(int receiveBufferSize)
SocketChannelConfig
StandardSocketOptions.SO_RCVBUF
option.setReceiveBufferSize
in interface SocketChannelConfig
public EpollSocketChannelConfig setReuseAddress(boolean reuseAddress)
SocketChannelConfig
StandardSocketOptions.SO_REUSEADDR
option.setReuseAddress
in interface SocketChannelConfig
public EpollSocketChannelConfig setSendBufferSize(int sendBufferSize)
SocketChannelConfig
StandardSocketOptions.SO_SNDBUF
option.setSendBufferSize
in interface SocketChannelConfig
public EpollSocketChannelConfig setSoLinger(int soLinger)
SocketChannelConfig
StandardSocketOptions.SO_LINGER
option.setSoLinger
in interface SocketChannelConfig
public EpollSocketChannelConfig setTcpNoDelay(boolean tcpNoDelay)
SocketChannelConfig
StandardSocketOptions.TCP_NODELAY
option. Please note that the default value of this option
is true
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 be
false
.setTcpNoDelay
in interface SocketChannelConfig
public EpollSocketChannelConfig setTcpCork(boolean tcpCork)
TCP_CORK
option on the socket. See man 7 tcp
for more details.public EpollSocketChannelConfig setSoBusyPoll(int loopMicros)
SO_BUSY_POLL
option on the socket. See man 7 tcp
for more details.public EpollSocketChannelConfig setTcpNotSentLowAt(long tcpNotSentLowAt)
TCP_NOTSENT_LOWAT
option on the socket. See man 7 tcp
for more details.tcpNotSentLowAt
- is a uint32_tpublic EpollSocketChannelConfig setTrafficClass(int trafficClass)
SocketChannelConfig
StandardSocketOptions.IP_TOS
option.setTrafficClass
in interface SocketChannelConfig
public EpollSocketChannelConfig setTcpKeepIdle(int seconds)
TCP_KEEPIDLE
option on the socket. See man 7 tcp
for more details.public EpollSocketChannelConfig setTcpKeepIntvl(int seconds)
TCP_KEEPINTVL
option on the socket. See man 7 tcp
for more details.@Deprecated public EpollSocketChannelConfig setTcpKeepCntl(int probes)
setTcpKeepCnt(int)
public EpollSocketChannelConfig setTcpKeepCnt(int probes)
TCP_KEEPCNT
option on the socket. See man 7 tcp
for more details.public EpollSocketChannelConfig setTcpUserTimeout(int milliseconds)
TCP_USER_TIMEOUT
option on the socket. See man 7 tcp
for more details.public boolean isIpBindAddressNoPort()
true
if the IP_BIND_ADDRESS_NO_PORT option is set.public EpollSocketChannelConfig setIpBindAddressNoPort(boolean ipBindAddressNoPort)
AbstractChannel.bind(java.net.SocketAddress)
to have
any affect.public boolean isIpTransparent()
public EpollSocketChannelConfig setIpTransparent(boolean transparent)
public EpollSocketChannelConfig setTcpMd5Sig(Map<InetAddress,byte[]> keys)
TCP_MD5SIG
option on the socket. See linux/tcp.h
for more details.
Keys can only be set on, not read to prevent a potential leak, as they are confidential.
Allowing them being read would mean anyone with access to the channel could get them.public EpollSocketChannelConfig setTcpQuickAck(boolean quickAck)
TCP_QUICKACK
option on the socket.
See TCP_QUICKACK
for more details.public boolean isTcpQuickAck()
public EpollSocketChannelConfig setTcpFastOpenConnect(boolean fastOpenConnect)
TCP_FASTOPEN_CONNECT
normally
requires Linux kernel 4.11 or later, so instead we use the traditional fast open
client socket mechanics that work with kernel 3.6 and later. See this
LWN article for more info.public boolean isTcpFastOpenConnect()
true
if TCP fast open is enabled, false
otherwise.public boolean isAllowHalfClosure()
DuplexChannelConfig
true
if and only if the channel should not close itself when its remote
peer shuts down output to make the connection half-closed. If false
, the connection
is closed automatically when the remote peer shuts down output.isAllowHalfClosure
in interface DuplexChannelConfig
public EpollSocketChannelConfig setAllowHalfClosure(boolean allowHalfClosure)
DuplexChannelConfig
true
the connection is not closed when the
remote peer shuts down output. Instead,
ChannelInboundHandler.userEventTriggered(ChannelHandlerContext, Object)
is invoked with a ChannelInputShutdownEvent
object. If false
, the connection
is closed automatically.setAllowHalfClosure
in interface DuplexChannelConfig
setAllowHalfClosure
in interface SocketChannelConfig
public EpollSocketChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis)
ChannelConfig
Channel
does not support connect operation, this property is not
used at all, and therefore will be ignored.setConnectTimeoutMillis
in interface ChannelConfig
setConnectTimeoutMillis
in interface SocketChannelConfig
setConnectTimeoutMillis
in class EpollChannelConfig
connectTimeoutMillis
- the connect timeout in milliseconds.
0
to disable.@Deprecated public EpollSocketChannelConfig setMaxMessagesPerRead(int maxMessagesPerRead)
DefaultChannelConfig
setMaxMessagesPerRead
in interface ChannelConfig
setMaxMessagesPerRead
in interface DuplexChannelConfig
setMaxMessagesPerRead
in interface SocketChannelConfig
setMaxMessagesPerRead
in class EpollChannelConfig
public EpollSocketChannelConfig setWriteSpinCount(int writeSpinCount)
ChannelConfig
WritableByteChannel.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 is 16
.setWriteSpinCount
in interface ChannelConfig
setWriteSpinCount
in interface DuplexChannelConfig
setWriteSpinCount
in interface SocketChannelConfig
setWriteSpinCount
in class EpollChannelConfig
public EpollSocketChannelConfig setAllocator(ByteBufAllocator allocator)
ChannelConfig
ByteBufAllocator
which is used for the channel
to allocate buffers.setAllocator
in interface ChannelConfig
setAllocator
in interface DuplexChannelConfig
setAllocator
in interface SocketChannelConfig
setAllocator
in class EpollChannelConfig
public EpollSocketChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator allocator)
ChannelConfig
RecvByteBufAllocator
which is used for the channel to allocate receive buffers.setRecvByteBufAllocator
in interface ChannelConfig
setRecvByteBufAllocator
in interface DuplexChannelConfig
setRecvByteBufAllocator
in interface SocketChannelConfig
setRecvByteBufAllocator
in class EpollChannelConfig
public EpollSocketChannelConfig setAutoRead(boolean autoRead)
ChannelConfig
ChannelHandlerContext.read()
will be invoked automatically so that a user application doesn't
need to call it at all. The default value is true
.setAutoRead
in interface ChannelConfig
setAutoRead
in interface DuplexChannelConfig
setAutoRead
in interface SocketChannelConfig
setAutoRead
in class EpollChannelConfig
public EpollSocketChannelConfig setAutoClose(boolean autoClose)
ChannelConfig
Channel
should be closed automatically and immediately on write failure.
The default is true
.setAutoClose
in interface ChannelConfig
setAutoClose
in interface DuplexChannelConfig
setAutoClose
in interface SocketChannelConfig
setAutoClose
in class DefaultChannelConfig
@Deprecated public EpollSocketChannelConfig setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
ChannelConfig
Sets the high water mark of the write buffer. If the number of bytes
queued in the write buffer exceeds this value, Channel.isWritable()
will start to return false
.
setWriteBufferHighWaterMark
in interface ChannelConfig
setWriteBufferHighWaterMark
in class EpollChannelConfig
@Deprecated public EpollSocketChannelConfig setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
ChannelConfig
Sets the low water mark of the write buffer. Once the number of bytes
queued in the write buffer exceeded the
high water mark and then
dropped down below this value, Channel.isWritable()
will start to return
true
again.
setWriteBufferLowWaterMark
in interface ChannelConfig
setWriteBufferLowWaterMark
in class EpollChannelConfig
public EpollSocketChannelConfig setWriteBufferWaterMark(WriteBufferWaterMark writeBufferWaterMark)
ChannelConfig
WriteBufferWaterMark
which is used for setting the high and low
water mark of the write buffer.setWriteBufferWaterMark
in interface ChannelConfig
setWriteBufferWaterMark
in interface DuplexChannelConfig
setWriteBufferWaterMark
in interface SocketChannelConfig
setWriteBufferWaterMark
in class EpollChannelConfig
public EpollSocketChannelConfig setMessageSizeEstimator(MessageSizeEstimator estimator)
ChannelConfig
MessageSizeEstimator
which is used for the channel
to detect the size of a message.setMessageSizeEstimator
in interface ChannelConfig
setMessageSizeEstimator
in interface DuplexChannelConfig
setMessageSizeEstimator
in interface SocketChannelConfig
setMessageSizeEstimator
in class EpollChannelConfig
public EpollSocketChannelConfig setEpollMode(EpollMode mode)
EpollChannelConfig
EpollMode
used. Default is
EpollMode.EDGE_TRIGGERED
. If you want to use DefaultChannelConfig.isAutoRead()
false
or
DefaultChannelConfig.getMaxMessagesPerRead()
and have an accurate behaviour you should use
EpollMode.LEVEL_TRIGGERED
.
Be aware this config setting can only be adjusted before the channel was registered.setEpollMode
in class EpollChannelConfig
Copyright © 2008–2024 The Netty Project. All rights reserved.