From 3a0653b8ed2ddaef505feafdb462df62cd8b25f6 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Sat, 30 Jan 2021 09:17:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=AB=AF=E5=8F=A3=E8=A2=AB?= =?UTF-8?q?=E5=8D=A0=E7=94=A8=E6=97=B6=E7=9A=84=E6=8F=90=E7=A4=BA=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xiaoleilu/loServer/LoFileServer.java | 9 ++++++--- .../main/java/com/xiaoleilu/loServer/LoServer.java | 12 +++++++++--- .../java/io/moquette/server/netty/NettyAcceptor.java | 10 ++++------ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/broker/src/main/java/com/xiaoleilu/loServer/LoFileServer.java b/broker/src/main/java/com/xiaoleilu/loServer/LoFileServer.java index 5bc31d87..ebcadc1a 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/LoFileServer.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/LoFileServer.java @@ -80,9 +80,12 @@ public class LoFileServer { channel = b.bind(port).sync().channel(); Logger.info("***** Welcome To LoServer on port [{}], startting spend {}ms *****", port, DateUtil.spendMs(start)); - } finally { - - } + } catch (Exception e) { + e.printStackTrace(); + Logger.error("端口 {} 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep {}", port, port); + System.out.println("端口 " + port + " 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep " + port); + System.exit(-1); + } } public void shutdown() { if (this.channel != null) { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/LoServer.java b/broker/src/main/java/com/xiaoleilu/loServer/LoServer.java index ad29eca7..f22760ad 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/LoServer.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/LoServer.java @@ -62,6 +62,7 @@ public class LoServer { registerAllAction(); + int bindingPort = port; try { final ServerBootstrap b = new ServerBootstrap(); final ServerBootstrap adminB = new ServerBootstrap(); @@ -87,6 +88,7 @@ public class LoServer { channel = b.bind(port).sync().channel(); + bindingPort = adminPort; adminB.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 10240) // 服务端可连接队列大小 @@ -108,10 +110,14 @@ public class LoServer { adminChannel = adminB.bind(adminPort).sync().channel(); Logger.info("***** Welcome To LoServer on port [{},{}], startting spend {}ms *****", port, adminPort, DateUtil.spendMs(start)); - } finally { - - } + } catch (Exception e) { + e.printStackTrace(); + Logger.error("端口 {} 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep {}", bindingPort, bindingPort); + System.out.println("端口 " + bindingPort + " 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep " + bindingPort); + System.exit(-1); + } } + public void shutdown() { if (this.channel!= null) { this.channel.close(); diff --git a/broker/src/main/java/io/moquette/server/netty/NettyAcceptor.java b/broker/src/main/java/io/moquette/server/netty/NettyAcceptor.java index 8de0b417..e1de77a4 100644 --- a/broker/src/main/java/io/moquette/server/netty/NettyAcceptor.java +++ b/broker/src/main/java/io/moquette/server/netty/NettyAcceptor.java @@ -149,12 +149,10 @@ public class NettyAcceptor implements ServerAcceptor { } catch (InterruptedException ex) { LOG.error("An interruptedException was caught while initializing server. Protocol={}", protocol, ex); } catch (Exception e) { - if(e instanceof BindException) { - e.printStackTrace(); - LOG.error("端口 {} 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep {}", port, port); - System.out.println("端口 " + port + " 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep " + port); - } - throw e; + e.printStackTrace(); + LOG.error("端口 {} 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep {}", port, port); + System.out.println("端口 " + port + " 已经被占用。请检查该端口被那个程序占用,找到程序停掉。\n查找端口被那个程序占用的命令是: netstat -tunlp | grep " + port); + System.exit(-1); } }