From cb1bdfd36e5dcd7b912b2871d2360e475e8e0b92 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Sat, 25 May 2024 01:01:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20:rocket:=20netty?= =?UTF-8?q?=E4=BD=BF=E7=94=A8Redis=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netty/{ => demo4}/PackageClient.java | 2 +- .../netty/{ => demo4}/PackageServer.java | 2 +- .../bunny/service/netty/demo5/RedisSend.java | 65 +++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) rename netty/service/src/main/java/cn/bunny/service/netty/{ => demo4}/PackageClient.java (98%) rename netty/service/src/main/java/cn/bunny/service/netty/{ => demo4}/PackageServer.java (98%) create mode 100644 netty/service/src/main/java/cn/bunny/service/netty/demo5/RedisSend.java diff --git a/netty/service/src/main/java/cn/bunny/service/netty/PackageClient.java b/netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageClient.java similarity index 98% rename from netty/service/src/main/java/cn/bunny/service/netty/PackageClient.java rename to netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageClient.java index 781e97c..848e91a 100644 --- a/netty/service/src/main/java/cn/bunny/service/netty/PackageClient.java +++ b/netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageClient.java @@ -1,4 +1,4 @@ -package cn.bunny.service.netty; +package cn.bunny.service.netty.demo4; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; diff --git a/netty/service/src/main/java/cn/bunny/service/netty/PackageServer.java b/netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageServer.java similarity index 98% rename from netty/service/src/main/java/cn/bunny/service/netty/PackageServer.java rename to netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageServer.java index 4361089..c840578 100644 --- a/netty/service/src/main/java/cn/bunny/service/netty/PackageServer.java +++ b/netty/service/src/main/java/cn/bunny/service/netty/demo4/PackageServer.java @@ -1,4 +1,4 @@ -package cn.bunny.service.netty; +package cn.bunny.service.netty.demo4; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; diff --git a/netty/service/src/main/java/cn/bunny/service/netty/demo5/RedisSend.java b/netty/service/src/main/java/cn/bunny/service/netty/demo5/RedisSend.java new file mode 100644 index 0000000..cd2d303 --- /dev/null +++ b/netty/service/src/main/java/cn/bunny/service/netty/demo5/RedisSend.java @@ -0,0 +1,65 @@ +package cn.bunny.service.netty.demo5; + +import io.netty.bootstrap.Bootstrap; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.handler.logging.LoggingHandler; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; + +@Slf4j +public class RedisSend { + public static void main(String[] args) { + final byte[] LINE = {13, 10}; + NioEventLoopGroup work = new NioEventLoopGroup(); + try { + Bootstrap bootstrap = new Bootstrap(); + bootstrap.channel(NioSocketChannel.class); + bootstrap.group(work); + bootstrap.handler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel socketChannel) throws Exception { + socketChannel.pipeline().addLast(new LoggingHandler()); + socketChannel.pipeline().addLast(new ChannelInboundHandlerAdapter() { + // 在连接建立时发送 + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + ByteBuf buf = ctx.alloc().buffer(); + buf.writeBytes("*2".getBytes()); + buf.writeBytes(LINE); + buf.writeBytes("$3".getBytes()); + buf.writeBytes(LINE); + buf.writeBytes("get".getBytes()); + buf.writeBytes(LINE); + buf.writeBytes("$3".getBytes()); + buf.writeBytes(LINE); + buf.writeBytes("aaa".getBytes()); + buf.writeBytes(LINE); + ctx.writeAndFlush(buf); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + ByteBuf buf = (ByteBuf) msg; + System.out.println(buf.toString(Charset.defaultCharset())); + } + }); + } + }); + + ChannelFuture channelFuture = bootstrap.connect("47.120.65.66", 6379); + channelFuture.channel().closeFuture().sync(); + } catch (InterruptedException e) { + log.error("服务器错误", e); + } finally { + work.shutdownGracefully(); + } + } +}