Browse Source

TCP 设定自身ip和端口 忘实现功能了

xiuwei 4 năm trước cách đây
mục cha
commit
de2ee2e80e

+ 3 - 3
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>wei.yigulu</groupId>
     <artifactId>protocol</artifactId>
-    <version>1.1.8</version>
+    <version>1.1.9</version>
     <packaging>pom</packaging>
     <modules>
         <module>protocol-core</module>
@@ -32,8 +32,8 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>
-        <protocol.version>1.1.8</protocol.version>
-        <iec104.version>1.4.13</iec104.version>
+        <protocol.version>1.1.9</protocol.version>
+        <iec104.version>1.4.14</iec104.version>
         <modbus.version>1.2.4</modbus.version>
         <cdt.version>1.0.0</cdt.version>
     </properties>

+ 1 - 1
protocol-all/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <artifactId>protocol</artifactId>
         <groupId>wei.yigulu</groupId>
-        <version>1.1.8</version>
+        <version>1.1.9</version>
     </parent>
 
 

+ 1 - 1
protocol-cdt/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>protocol</artifactId>
         <groupId>wei.yigulu</groupId>
-        <version>1.1.8</version>
+        <version>1.1.9</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
protocol-core/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>protocol</artifactId>
         <groupId>wei.yigulu</groupId>
-        <version>1.1.8</version>
+        <version>1.1.9</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 0 - 12
protocol-core/src/main/java/wei/yigulu/netty/AbstractHSTcpMasterBuilder.java

@@ -59,19 +59,7 @@ public abstract class AbstractHSTcpMasterBuilder extends AbstractTcpMasterBuilde
 	@Setter
 	private Integer sparePort;
 
-	/**
-	 * 本端的ip
-	 */
-	@Getter
-	@Setter
-	private String selfIp;
 
-	/**
-	 * 本端的端口
-	 */
-	@Getter
-	@Setter
-	private Integer selfPort;
 
 
 	@Override

+ 28 - 1
protocol-core/src/main/java/wei/yigulu/netty/AbstractTcpMasterBuilder.java

@@ -1,16 +1,22 @@
 package wei.yigulu.netty;
 
 
+import com.sun.deploy.util.StringUtils;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFutureListener;
 import io.netty.channel.ChannelOption;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.nio.NioEventLoopGroup;
 import io.netty.channel.socket.nio.NioSocketChannel;
+import io.netty.util.internal.StringUtil;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
+import lombok.Setter;
 import lombok.experimental.Accessors;
 
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+
 /**
  * TCP主站  向子站发送总召唤 获取子站的数据
  * <p>
@@ -36,6 +42,21 @@ public abstract class AbstractTcpMasterBuilder extends AbstractMasterBuilder {
 	@Getter
 	Integer port;
 
+
+	/**
+	 * 本端的ip
+	 */
+	@Getter
+	@Setter
+	private String selfIp;
+
+	/**
+	 * 本端的端口
+	 */
+	@Getter
+	@Setter
+	private Integer selfPort;
+
 	/**
 	 * 构造方法
 	 *
@@ -59,7 +80,13 @@ public abstract class AbstractTcpMasterBuilder extends AbstractMasterBuilder {
 			}
 			log.debug("创建连接");
 			try {
-				future = getOrCreateBootstrap().connect(this.ip, this.port);
+				SocketAddress remoteAddress= InetSocketAddress.createUnresolved(getIp(),getPort());
+				if(StringUtil.isNullOrEmpty(getSelfIp()) && getSelfPort()!=null){
+					SocketAddress localAddress= InetSocketAddress.createUnresolved(getSelfIp(),getSelfPort());
+					future = getOrCreateBootstrap().connect(remoteAddress,localAddress);
+				}else{
+					future = getOrCreateBootstrap().connect(remoteAddress);
+				}
 				log.debug("为连接添加监听");
 				future.addListener(getOrCreateConnectionListener());
 			} catch (Exception e) {

+ 1 - 1
protocol-iec104/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>protocol</artifactId>
         <groupId>wei.yigulu</groupId>
-        <version>1.1.8</version>
+        <version>1.1.9</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
protocol-modbus/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>protocol</artifactId>
         <groupId>wei.yigulu</groupId>
-        <version>1.1.8</version>
+        <version>1.1.9</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <version>${modbus.version}</version>