Nety|TCP接続タイムアウト値のInteger.MAXVALUEを使用すると無制限に再接続されますか?
サスペンス
突然、Timeoutオプションは、次のネットワークの一般的なTCPクライアント接続コードで使用できます.MAX VALUEに設定すると、接続を無制限に再試行するかどうかを知りたい場合があります.Integer.MAXVALUE(2147483647)の値を使用すると、68年(2147483647/60(秒)/60(分)/24(時間)/365(日)の間に再接続が実行されるため、これは無限であると考えられます.EventLoopGroup eventLoopGroup = new NioEventLoopGroup();
bootstrap.group(eventLoopGroup)
.channel(NioSocketChannel.class)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Integer.MAX_VALUE)
.handler(channelInitializer);
bootstrap.connect("192.168.10.111", 24).sync();
特定のデバイスがすべて開いているときに常に自動的に接続されるように、次のコードを作成し、定期的に接続を再試行します.内部を再接続すれば、それらのコードを削除できると思います.public Future<Void> begin(ConnectionTag connectionTag) {
cancelEvent = new CountDownLatch(1);
future = executor.submit(() -> {
boolean connected;
do {
if (cancelEvent.await(100, TimeUnit.MILLISECONDS)) {
break;
}
connected = TcpClient.this.connectOnce(connectionTag);
} while (!connected);
cancelEvent.countDown();
return null;
});
return future;
}
結果
結果は変な考えだった.再試行は3回のみ行われ、約21秒後に接続タイムアウトが発生し、実行制御に戻ります.(テストはWindowsオペレーティングシステムで行います.)
Reference
この問題について(Nety|TCP接続タイムアウト値のInteger.MAXVALUEを使用すると無制限に再接続されますか?), 我々は、より多くの情報をここで見つけました
https://velog.io/@joosing/netty-tcp-connection-timeout
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
EventLoopGroup eventLoopGroup = new NioEventLoopGroup();
bootstrap.group(eventLoopGroup)
.channel(NioSocketChannel.class)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Integer.MAX_VALUE)
.handler(channelInitializer);
bootstrap.connect("192.168.10.111", 24).sync();
public Future<Void> begin(ConnectionTag connectionTag) {
cancelEvent = new CountDownLatch(1);
future = executor.submit(() -> {
boolean connected;
do {
if (cancelEvent.await(100, TimeUnit.MILLISECONDS)) {
break;
}
connected = TcpClient.this.connectOnce(connectionTag);
} while (!connected);
cancelEvent.countDown();
return null;
});
return future;
}
結果は変な考えだった.再試行は3回のみ行われ、約21秒後に接続タイムアウトが発生し、実行制御に戻ります.(テストはWindowsオペレーティングシステムで行います.)
Reference
この問題について(Nety|TCP接続タイムアウト値のInteger.MAXVALUEを使用すると無制限に再接続されますか?), 我々は、より多くの情報をここで見つけました https://velog.io/@joosing/netty-tcp-connection-timeoutテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol