diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/src/main/java/com/casic/handler/ReceiverServerHandler.java b/src/main/java/com/casic/handler/ReceiverServerHandler.java new file mode 100644 index 0000000..b33964d --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServerHandler.java @@ -0,0 +1,56 @@ +package com.casic.handler; + + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @description: 消息处理handler + * @author: Stone + * @create: 2019-01-10 20:01 + **/ +@Slf4j +@Component +@ChannelHandler.Sharable +public class ReceiverServerHandler extends ChannelInboundHandlerAdapter { + + public ReceiverServerHandler() { + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + super.channelRegistered(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + super.channelRead(ctx, msg); +// log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME,(String)msg); + log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); + String msgStr = msg.toString(); + // 以固定行分隔符结尾分割,头部可能有不符合接口协议的字段, 去掉 + int idx = msgStr.indexOf("##"); + if(idx >= 0) { + msgStr = msgStr.substring(idx); + } +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME, msgStr); + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + super.exceptionCaught(ctx, cause); + cause.printStackTrace(); + ctx.close(); + } + +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/src/main/java/com/casic/handler/ReceiverServerHandler.java b/src/main/java/com/casic/handler/ReceiverServerHandler.java new file mode 100644 index 0000000..b33964d --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServerHandler.java @@ -0,0 +1,56 @@ +package com.casic.handler; + + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @description: 消息处理handler + * @author: Stone + * @create: 2019-01-10 20:01 + **/ +@Slf4j +@Component +@ChannelHandler.Sharable +public class ReceiverServerHandler extends ChannelInboundHandlerAdapter { + + public ReceiverServerHandler() { + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + super.channelRegistered(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + super.channelRead(ctx, msg); +// log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME,(String)msg); + log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); + String msgStr = msg.toString(); + // 以固定行分隔符结尾分割,头部可能有不符合接口协议的字段, 去掉 + int idx = msgStr.indexOf("##"); + if(idx >= 0) { + msgStr = msgStr.substring(idx); + } +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME, msgStr); + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + super.exceptionCaught(ctx, cause); + cause.printStackTrace(); + ctx.close(); + } + +} diff --git a/src/main/java/com/casic/util/Client.java b/src/main/java/com/casic/util/Client.java new file mode 100644 index 0000000..a416600 --- /dev/null +++ b/src/main/java/com/casic/util/Client.java @@ -0,0 +1,34 @@ +package com.casic.util; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 客户端socket + */ +public class Client { + public static void main(String[] args) { + try { + //发送到8888端口 + Socket socket = new Socket("127.0.0.1", 11321); + //输出流 + OutputStream outputStream = socket.getOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.write("服务端你好,我是客户端"); + printWriter.flush(); + //关闭资源 + printWriter.close(); + outputStream.close(); + socket.close(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/src/main/java/com/casic/handler/ReceiverServerHandler.java b/src/main/java/com/casic/handler/ReceiverServerHandler.java new file mode 100644 index 0000000..b33964d --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServerHandler.java @@ -0,0 +1,56 @@ +package com.casic.handler; + + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @description: 消息处理handler + * @author: Stone + * @create: 2019-01-10 20:01 + **/ +@Slf4j +@Component +@ChannelHandler.Sharable +public class ReceiverServerHandler extends ChannelInboundHandlerAdapter { + + public ReceiverServerHandler() { + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + super.channelRegistered(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + super.channelRead(ctx, msg); +// log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME,(String)msg); + log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); + String msgStr = msg.toString(); + // 以固定行分隔符结尾分割,头部可能有不符合接口协议的字段, 去掉 + int idx = msgStr.indexOf("##"); + if(idx >= 0) { + msgStr = msgStr.substring(idx); + } +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME, msgStr); + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + super.exceptionCaught(ctx, cause); + cause.printStackTrace(); + ctx.close(); + } + +} diff --git a/src/main/java/com/casic/util/Client.java b/src/main/java/com/casic/util/Client.java new file mode 100644 index 0000000..a416600 --- /dev/null +++ b/src/main/java/com/casic/util/Client.java @@ -0,0 +1,34 @@ +package com.casic.util; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 客户端socket + */ +public class Client { + public static void main(String[] args) { + try { + //发送到8888端口 + Socket socket = new Socket("127.0.0.1", 11321); + //输出流 + OutputStream outputStream = socket.getOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.write("服务端你好,我是客户端"); + printWriter.flush(); + //关闭资源 + printWriter.close(); + outputStream.close(); + socket.close(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/casic/util/Server.java b/src/main/java/com/casic/util/Server.java new file mode 100644 index 0000000..50c0957 --- /dev/null +++ b/src/main/java/com/casic/util/Server.java @@ -0,0 +1,38 @@ +package com.casic.util; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 服务器socket + */ +public class Server { + public static void main(String[] args) { + try { + ServerSocket serverSocket = new ServerSocket(11321); + System.out.println("----------------服务端执行,開始监听请求----------------"); + + Socket socket = serverSocket.accept();//開始监听 + InputStream inputStream = socket.getInputStream(); + //获取请求内容 + String info; + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + while ((info = bufferedReader.readLine()) != null) { + System.out.println("我是服务端,客户端请求为:" + info); + } + //关闭资源 + socket.shutdownInput(); + bufferedReader.close(); + inputStream.close(); + socket.close(); + serverSocket.close(); + } catch (Exception exception) { + exception.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/src/main/java/com/casic/handler/ReceiverServerHandler.java b/src/main/java/com/casic/handler/ReceiverServerHandler.java new file mode 100644 index 0000000..b33964d --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServerHandler.java @@ -0,0 +1,56 @@ +package com.casic.handler; + + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @description: 消息处理handler + * @author: Stone + * @create: 2019-01-10 20:01 + **/ +@Slf4j +@Component +@ChannelHandler.Sharable +public class ReceiverServerHandler extends ChannelInboundHandlerAdapter { + + public ReceiverServerHandler() { + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + super.channelRegistered(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + super.channelRead(ctx, msg); +// log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME,(String)msg); + log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); + String msgStr = msg.toString(); + // 以固定行分隔符结尾分割,头部可能有不符合接口协议的字段, 去掉 + int idx = msgStr.indexOf("##"); + if(idx >= 0) { + msgStr = msgStr.substring(idx); + } +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME, msgStr); + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + super.exceptionCaught(ctx, cause); + cause.printStackTrace(); + ctx.close(); + } + +} diff --git a/src/main/java/com/casic/util/Client.java b/src/main/java/com/casic/util/Client.java new file mode 100644 index 0000000..a416600 --- /dev/null +++ b/src/main/java/com/casic/util/Client.java @@ -0,0 +1,34 @@ +package com.casic.util; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 客户端socket + */ +public class Client { + public static void main(String[] args) { + try { + //发送到8888端口 + Socket socket = new Socket("127.0.0.1", 11321); + //输出流 + OutputStream outputStream = socket.getOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.write("服务端你好,我是客户端"); + printWriter.flush(); + //关闭资源 + printWriter.close(); + outputStream.close(); + socket.close(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/casic/util/Server.java b/src/main/java/com/casic/util/Server.java new file mode 100644 index 0000000..50c0957 --- /dev/null +++ b/src/main/java/com/casic/util/Server.java @@ -0,0 +1,38 @@ +package com.casic.util; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 服务器socket + */ +public class Server { + public static void main(String[] args) { + try { + ServerSocket serverSocket = new ServerSocket(11321); + System.out.println("----------------服务端执行,開始监听请求----------------"); + + Socket socket = serverSocket.accept();//開始监听 + InputStream inputStream = socket.getInputStream(); + //获取请求内容 + String info; + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + while ((info = bufferedReader.readLine()) != null) { + System.out.println("我是服务端,客户端请求为:" + info); + } + //关闭资源 + socket.shutdownInput(); + bufferedReader.close(); + inputStream.close(); + socket.close(); + serverSocket.close(); + } catch (Exception exception) { + exception.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/util/ServerSocketUtil.java b/src/main/java/com/casic/util/ServerSocketUtil.java new file mode 100644 index 0000000..8f3ac26 --- /dev/null +++ b/src/main/java/com/casic/util/ServerSocketUtil.java @@ -0,0 +1,41 @@ +//package com.casic.util; +// +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Component; +// +//import java.io.*; +//import java.net.Socket; +//import java.net.UnknownHostException; +// +//@Component +//public class ServerSocketUtil { +// +// @Value("${casic.host}") +// private String host; +// @Value("${casic.port}") +// private Integer port; +// +// public String sendMsg(String Json) throws UnknownHostException, IOException { +// +// // 向服务器端发送请求,服务器IP地址和服务器监听的端口号 +// Socket server = new Socket(host, port); +// if(!server.isConnected()){ +// return "11"; +// } +// +// OutputStream os = server.getOutputStream(); +// //把输出流封装在DataOutputStream中 +// DataOutputStream dos = new DataOutputStream(os); +// //使用writeUTF发送字符串 +// dos.writeUTF("Legendary!"); +// dos.flush(); +// dos.close(); +// server.close(); +//// System.out.println("连接已建立..."); +//// // 发送消息 +//// printWriter.println(Json); +//// printWriter.flush(); +// return "200"; +// } +// +//} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..10b37d0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,162 @@ + + + 4.0.0 + + com.casic + rain_receiver + 1.0-SNAPSHOT + jar + + + UTF-8 + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.1.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-web + 2.1.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.1.3.RELEASE + + + + mysql + mysql-connector-java + 8.0.16 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3 + + + + + org.projectlombok + lombok + 1.18.20 + + + + io.netty + netty-all + 4.1.36.Final + + + + + com.alibaba + druid + 1.2.6 + + + + com.alibaba + fastjson + 1.2.73 + + + + + com.baomidou + mybatis-plus-generator + 3.3.2 + + + + com.baomidou + mybatis-plus + 3.4.3 + + + + com.baomidou + mybatis-plus-generator + 3.5.1 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.7.4 + + + + org.freemarker + freemarker + 2.3.28 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.3.RELEASE + + true + + com.casic.CasicApplication + exec + + + + + repackage + + + + + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/resources + + **/*.xml + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/com/casic/CasicApplication.java b/src/main/java/com/casic/CasicApplication.java new file mode 100644 index 0000000..71ea928 --- /dev/null +++ b/src/main/java/com/casic/CasicApplication.java @@ -0,0 +1,23 @@ +package com.casic; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * SpringBoot方式启动类 + * + * @author cz + * @Date 2023/03/23 14:28 + */ + +@Slf4j +@ComponentScan(basePackages= "com.casic.**") +@SpringBootApplication +public class CasicApplication { + public static void main(String[] args) { + log.info("CasicApplication is success!"); + SpringApplication.run(CasicApplication.class, args); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDecoder.java b/src/main/java/com/casic/handler/ReceiverDecoder.java new file mode 100644 index 0000000..a5cdb29 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDecoder.java @@ -0,0 +1,24 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.List; + +/** + * @description: 将从接口取到的数据编码 + * @author: Stone + * @create: 2019-01-11 15:15 + **/ +@Slf4j +public class ReceiverDecoder extends MessageToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { + log.info("hexBytes : " + ByteBufUtil.hexDump(msg) + ";" + " String : " + msg.toString(Charset.defaultCharset())); + out.add(msg.toString(Charset.defaultCharset())); + } +} diff --git a/src/main/java/com/casic/handler/ReceiverDomain.java b/src/main/java/com/casic/handler/ReceiverDomain.java new file mode 100644 index 0000000..f0a89b6 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverDomain.java @@ -0,0 +1,21 @@ +package com.casic.handler; + +import io.netty.buffer.ByteBuf; +import lombok.Data; + +/** + * @description: 环境数据实体类 + * @author: Stone + * @create: 2019-01-10 22:38 + **/ +@Data +public class ReceiverDomain { + private String head; + private int len; + private String key; + private String value; + + public ReceiverDomain(ByteBuf bf) { + } + +} diff --git a/src/main/java/com/casic/handler/ReceiverServer.java b/src/main/java/com/casic/handler/ReceiverServer.java new file mode 100644 index 0000000..17dd948 --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServer.java @@ -0,0 +1,72 @@ +package com.casic.handler; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @description: 接收客户端传过来的数据,只做打印处理 + * @author: Stone + * @create: 2019-01-10 19:52 + **/ +@Slf4j +@Component +public class ReceiverServer { + + @Autowired + private ReceiverServerHandler receiverServerHandler; + + @Value("${xgd.server-port}") + private int port; + + + + @PostConstruct + public void init() { + this.start(); + } + + public void start() { + EventLoopGroup bossGroup = new NioEventLoopGroup(); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + log.info("server bind port = {}", port); + + ServerBootstrap serverBootstrap = new ServerBootstrap(); + serverBootstrap = serverBootstrap.group(bossGroup, workerGroup); + serverBootstrap = serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024); + serverBootstrap = serverBootstrap.channel(NioServerSocketChannel.class); + + serverBootstrap.childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) { + socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); + socketChannel.pipeline().addLast(new StringDecoder()); + socketChannel.pipeline().addLast(receiverServerHandler); + } + }); + + serverBootstrap = serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); + try { + ChannelFuture channelFuture = serverBootstrap.bind(port).sync(); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } +} diff --git a/src/main/java/com/casic/handler/ReceiverServerHandler.java b/src/main/java/com/casic/handler/ReceiverServerHandler.java new file mode 100644 index 0000000..b33964d --- /dev/null +++ b/src/main/java/com/casic/handler/ReceiverServerHandler.java @@ -0,0 +1,56 @@ +package com.casic.handler; + + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @description: 消息处理handler + * @author: Stone + * @create: 2019-01-10 20:01 + **/ +@Slf4j +@Component +@ChannelHandler.Sharable +public class ReceiverServerHandler extends ChannelInboundHandlerAdapter { + + public ReceiverServerHandler() { + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + super.channelRegistered(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + super.channelActive(ctx); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + super.channelRead(ctx, msg); +// log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME,(String)msg); + log.info("[{}] : msg = {}", ctx.channel().remoteAddress(), msg); + String msgStr = msg.toString(); + // 以固定行分隔符结尾分割,头部可能有不符合接口协议的字段, 去掉 + int idx = msgStr.indexOf("##"); + if(idx >= 0) { + msgStr = msgStr.substring(idx); + } +// msgProducerService.sendMsg(Common.ACTIVEMQ_QUEUE_NAME, msgStr); + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + super.exceptionCaught(ctx, cause); + cause.printStackTrace(); + ctx.close(); + } + +} diff --git a/src/main/java/com/casic/util/Client.java b/src/main/java/com/casic/util/Client.java new file mode 100644 index 0000000..a416600 --- /dev/null +++ b/src/main/java/com/casic/util/Client.java @@ -0,0 +1,34 @@ +package com.casic.util; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 客户端socket + */ +public class Client { + public static void main(String[] args) { + try { + //发送到8888端口 + Socket socket = new Socket("127.0.0.1", 11321); + //输出流 + OutputStream outputStream = socket.getOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.write("服务端你好,我是客户端"); + printWriter.flush(); + //关闭资源 + printWriter.close(); + outputStream.close(); + socket.close(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/casic/util/Server.java b/src/main/java/com/casic/util/Server.java new file mode 100644 index 0000000..50c0957 --- /dev/null +++ b/src/main/java/com/casic/util/Server.java @@ -0,0 +1,38 @@ +package com.casic.util; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * @author: njb + * @Date: 2020/11/26 18:49 + * @desc: 服务器socket + */ +public class Server { + public static void main(String[] args) { + try { + ServerSocket serverSocket = new ServerSocket(11321); + System.out.println("----------------服务端执行,開始监听请求----------------"); + + Socket socket = serverSocket.accept();//開始监听 + InputStream inputStream = socket.getInputStream(); + //获取请求内容 + String info; + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + while ((info = bufferedReader.readLine()) != null) { + System.out.println("我是服务端,客户端请求为:" + info); + } + //关闭资源 + socket.shutdownInput(); + bufferedReader.close(); + inputStream.close(); + socket.close(); + serverSocket.close(); + } catch (Exception exception) { + exception.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/util/ServerSocketUtil.java b/src/main/java/com/casic/util/ServerSocketUtil.java new file mode 100644 index 0000000..8f3ac26 --- /dev/null +++ b/src/main/java/com/casic/util/ServerSocketUtil.java @@ -0,0 +1,41 @@ +//package com.casic.util; +// +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Component; +// +//import java.io.*; +//import java.net.Socket; +//import java.net.UnknownHostException; +// +//@Component +//public class ServerSocketUtil { +// +// @Value("${casic.host}") +// private String host; +// @Value("${casic.port}") +// private Integer port; +// +// public String sendMsg(String Json) throws UnknownHostException, IOException { +// +// // 向服务器端发送请求,服务器IP地址和服务器监听的端口号 +// Socket server = new Socket(host, port); +// if(!server.isConnected()){ +// return "11"; +// } +// +// OutputStream os = server.getOutputStream(); +// //把输出流封装在DataOutputStream中 +// DataOutputStream dos = new DataOutputStream(os); +// //使用writeUTF发送字符串 +// dos.writeUTF("Legendary!"); +// dos.flush(); +// dos.close(); +// server.close(); +//// System.out.println("连接已建立..."); +//// // 发送消息 +//// printWriter.println(Json); +//// printWriter.flush(); +// return "200"; +// } +// +//} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..4f76abd --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,19 @@ +spring: + jms: + pub-sub-domain: false + activemq: + user: + password: + broker-url: tcp://192.168.0.203:61616 + kafka: + url: http://58.250.71.201:19000/API/Table/GetRTJoinTmpStore + tableId: 66 + topic: 66 + + +# customer config +c-activemq: + queue-name: "hjt.msg.queue" + +xgd: + server-port: 13764