From 5141c80e637a48e2c5b0d4bd3dba7ae1ca926a17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Sun, 18 Jun 2023 15:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=BE=E6=8E=A5=E6=99=AE=E5=A4=A9=20?= =?UTF-8?q?=E5=BF=83=E8=B7=B3=E5=88=A4=E6=96=AD=E9=93=BE=E6=8E=A5=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/encrypt/Encryptor.dll | Bin 0 -> 13312 bytes .../zhehekeji/web/controller/PLCController.java | 5 ++++- .../web/service/client/CETransmission.java | 1 + .../web/service/client/ClientChanel.java | 8 +++++--- .../zhehekeji/web/service/client/Decoder.java | 2 +- .../web/service/client/HBTransmission.java | 5 +++++ web/src/main/resources/application-test.yml | 6 +++++- 7 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 libs/encrypt/Encryptor.dll diff --git a/libs/encrypt/Encryptor.dll b/libs/encrypt/Encryptor.dll new file mode 100644 index 0000000000000000000000000000000000000000..edee19a1ab9d978bb6b61abb192e6eae35b595a2 GIT binary patch literal 13312 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 literal 0 HcmV?d00001 diff --git a/web/src/main/java/com/zhehekeji/web/controller/PLCController.java b/web/src/main/java/com/zhehekeji/web/controller/PLCController.java index ac53d0a..bc95587 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/PLCController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/PLCController.java @@ -7,6 +7,7 @@ import com.zhehekeji.web.entity.Street; import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.service.*; import com.zhehekeji.web.service.ksec.KsecNettyClient; +import com.zhehekeji.web.service.putian.PuTianNettyClient; import com.zhehekeji.web.service.robotic.NettyClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,6 +32,8 @@ public class PLCController { private ConfigProperties configProperties; @Resource private KsecNettyClient ksecNettyClient; + @Resource + private PuTianNettyClient puTianNettyClient; @GetMapping("/tcp") @@ -38,7 +41,7 @@ public class PLCController { public Result tcp(@RequestParam Integer id){ if(configProperties.getServerMode() == 1){ try { - ksecNettyClient.createClient(configProperties.getKsec()); + puTianNettyClient.createClient(configProperties.getKsec()); }catch (Exception e){ Assert.isTrue(false,"连接失败,ip:"+configProperties.getKsec().getIp()+",port:"+configProperties.getKsec().getPort()); } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/CETransmission.java b/web/src/main/java/com/zhehekeji/web/service/client/CETransmission.java index e291630..d06acf3 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/CETransmission.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/CETransmission.java @@ -28,4 +28,5 @@ public class CETransmission { } } + } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/ClientChanel.java b/web/src/main/java/com/zhehekeji/web/service/client/ClientChanel.java index 00fc653..7b82b40 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/ClientChanel.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/ClientChanel.java @@ -11,6 +11,7 @@ import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; /** * 所有的客户端的chanel @@ -23,20 +24,20 @@ public class ClientChanel { /** * key : 巷道标识符 */ - private static Map channelMap = new HashMap<>(); + private static Map channelMap = new ConcurrentHashMap<>(); /** * key :IP * value: 巷道标识符 */ - private static Map IP_SRMNumberMap = new HashMap<>(); + private static Map IP_SRMNumberMap = new ConcurrentHashMap<>(); /** * key :巷道标识符 * value: IP */ - private static Map SRMNumber_IPMap = new HashMap<>(); + private static Map SRMNumber_IPMap = new ConcurrentHashMap<>(); public static void putIp(String ip,String ID){ IP_SRMNumberMap.put(ip,ID); @@ -63,6 +64,7 @@ public class ClientChanel { InetSocketAddress socketAddress = (InetSocketAddress) channel.remoteAddress(); String clientIp = socketAddress.getAddress().getHostAddress(); putSRMNUmber_Ip(SRMNumber, clientIp); + log.info("connect 巷道 "); } public static void disConnect(String key){ diff --git a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java index c70ed5e..c1e3611 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java @@ -1,6 +1,5 @@ package com.zhehekeji.web.service.client; -import com.sun.org.apache.bcel.internal.generic.PUTFIELD; import com.zhehekeji.web.entity.Stock; import com.zhehekeji.web.service.EmptyCheckService; import com.zhehekeji.web.service.PlcService; @@ -171,6 +170,7 @@ public class Decoder extends DelimiterBasedFrameDecoder { HBTransmission hbTransmission = new HBTransmission(body); //回复客户端心跳 ctx.channel().writeAndFlush(hbTransmission.toString()); + ClientChanel.connect(hbTransmission.getSRMNumber(), ctx.channel()); //tcpLogger.info("client:{} heart", hbTransmission.getSRMNumber()); in.release(); } else if(body.startsWith(TMTransmission.getHeader())){ diff --git a/web/src/main/java/com/zhehekeji/web/service/client/HBTransmission.java b/web/src/main/java/com/zhehekeji/web/service/client/HBTransmission.java index fced57e..779812b 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/HBTransmission.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/HBTransmission.java @@ -28,4 +28,9 @@ public class HBTransmission { } } + + public static void main(String[] args) { + HBTransmission ceTransmission= new HBTransmission("HB&1"); + System.out.println(ceTransmission); + } } diff --git a/web/src/main/resources/application-test.yml b/web/src/main/resources/application-test.yml index 90415ee..c53c4e8 100644 --- a/web/src/main/resources/application-test.yml +++ b/web/src/main/resources/application-test.yml @@ -7,7 +7,7 @@ spring: maxWait: 60000 minEvictableIdleTimeMillis: 300000 minIdle: 15 - password: Leaper@123 + password: root poolPreparedStatements: true testOnBorrow: true testOnReturn: false @@ -20,6 +20,10 @@ spring: # --------本服务端口号 server: port: 8099 + # 服务端IP +IP: 127.0.0.1 +# 服务端TCP端口 +serverPort: 4000 #-------------- # ------用户中心地址 userUrl: http://115.236.65.98:11001