我需要连接到服务器,该服务器将在端口上侦听.尽管可能需要一些时间才能投入使用.是否可以让ClientBootstrap在给定的尝试次数内尝试连接,或者直到达到超时为止?
目前,如果连接被拒绝,我会收到一个异常,但是它应该尝试在后台进行连接,例如通过遵守“ connectTimeoutMillis”引导程序选项.
解决方法:
您需要手工完成,但这并不难.
您可以执行以下操作:
final ClientBootstrap bs = new ClientBootstrap(...);
final InetSocketAddress address = new InetSocketAddress("remoteip", 110);
final int maxretries = 5;
final AtomicInteger count = new AtomicInteger();
bs.connect(address).addListener(new ChannelFutureListener() {
public void operationComplete(ChannelFuture future) throws Exception {
if (!future.isSuccess()) {
if (count.incrementAndGet() > maxretries) {
// fails to connect even after maxretries do something
} else {
// retry
bs.connect(address).addListener(this);
}
}
}
});
标签:netty,java
来源: https://codeday.me/bug/20191101/1984291.html