参考链接:https://www.cnblogs.com/silyvin/articles/11827030.html
一、解密
1、自定义解密类
import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import java.util.List; //自定义解密 public class CustomDecoder extends ByteToMessageDecoder { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { byte [] bytes = new byte[in.readableBytes()]; in.readBytes(bytes); byte [] encoded = Utils.decryp(bytes);; //自定义解密方法 ByteBuf buf = Unpooled.wrappedBuffer(encoded); out.add(buf); } }
2、加入到pipeline中
ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new CustomDecoder());//解密操作
二、加密
1、自定义加密类
import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; public class HJ212MessageEncoder extends MessageToByteEncoder<HJ212PackBean> { @Override protected void encode(ChannelHandlerContext ctx, HJ212PackBean bean, ByteBuf byteBuf) throws Exception { String response = ""; //自定义拼接回复内容response byte[] bytes=response.getBytes(); bytes = Utils.encryp(bytes);//自定义加密方法 ctx.writeAndFlush(Unpooled.copiedBuffer(bytes)); } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { logger.error("编码异常" + cause.getMessage()); ctx.close(); } }
2、加入到pipeline
ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new HJ212MessageEncoder());
标签:netty,pipeline,自定义,bytes,加解密,io,import,服务端 From: https://www.cnblogs.com/webttt/p/17852289.html