SO_TIMEOUTはjava.net.ServerSocket(OIO/BIO) CONNECT_TIMEOUT_MILLISが
io.netty.channel.nio.AbstractNioChannel @Override公共ボイド( 最終的に接続網状(NIO)によって設定されることにより設定されますSocketAddress [リモート、最終のSocketAddressをlocalAddress、最終ChannelPromiseの約束){// ...
try {
// ...
if (doConnect(remoteAddress, localAddress)) {
fulfillConnectPromise(promise, wasActive);
} else {
// ...
int connectTimeoutMillis = config().getConnectTimeoutMillis();
if (connectTimeoutMillis > 0) {
connectTimeoutFuture = eventLoop().schedule(new Runnable() {
@Override
public void run() {
ChannelPromise connectPromise = AbstractNioChannel.this.connectPromise;
ConnectTimeoutException cause =
new ConnectTimeoutException("connection timed out: " + remoteAddress);
if (connectPromise != null && connectPromise.tryFailure(cause)) {
close(voidPromise());
}
}
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
}
// ...
}
私の質問をフォーマットするための@noloaderに感謝します。 – BabyDuncan