From 0ee28f59ce13b2c8b816257d68f547dcde9c9e4e Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 31 May 2018 08:47:49 +0800 Subject: [PATCH] --- src/org/redkale/net/AsyncConnection.java | 1 + src/org/redkale/net/Transport.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/org/redkale/net/AsyncConnection.java b/src/org/redkale/net/AsyncConnection.java index 95d0e44c9..747ec7e51 100644 --- a/src/org/redkale/net/AsyncConnection.java +++ b/src/org/redkale/net/AsyncConnection.java @@ -204,6 +204,7 @@ public abstract class AsyncConnection implements AsynchronousByteChannel, AutoCl try { if (noDelay) channel.setOption(StandardSocketOptions.TCP_NODELAY, true); if (supportTcpKeepAlive()) channel.setOption(StandardSocketOptions.SO_KEEPALIVE, true); + channel.setOption(StandardSocketOptions.SO_REUSEADDR, true); } catch (IOException e) { } channel.connect(address, null, new CompletionHandler() { diff --git a/src/org/redkale/net/Transport.java b/src/org/redkale/net/Transport.java index 30152d5ea..225b247d5 100644 --- a/src/org/redkale/net/Transport.java +++ b/src/org/redkale/net/Transport.java @@ -262,6 +262,7 @@ public final class Transport { final AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group); if (supportTcpNoDelay()) channel.setOption(StandardSocketOptions.TCP_NODELAY, true); if (supportTcpKeepAlive()) channel.setOption(StandardSocketOptions.SO_KEEPALIVE, true); + channel.setOption(StandardSocketOptions.SO_REUSEADDR, true); channel.connect(one.address, one, new CompletionHandler() { @Override public void completed(Void result, TransportNode attachment) { @@ -312,6 +313,8 @@ public final class Transport { if (future.isDone()) return future; final AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group); if (supportTcpNoDelay()) channel.setOption(StandardSocketOptions.TCP_NODELAY, true); + if (supportTcpKeepAlive()) channel.setOption(StandardSocketOptions.SO_KEEPALIVE, true); + channel.setOption(StandardSocketOptions.SO_REUSEADDR, true); channel.connect(node.address, node, new CompletionHandler() { @Override public void completed(Void result, TransportNode attachment) {