在上一篇文章中有分享了一个比较好的博客地址:http://asialee.iteye.com/blog/1769508
里面有详细介绍一些原理方面的知识,还有简单的使用。
而编码和解码,我想实现通过字符串,以“XXEE”作为分割符。
public final class Delimiters { public static ByteBuf[] XXEEDelimiter() { return new ByteBuf[] { Unpooled.wrappedBuffer("XXEE".getBytes()) }; } }
显而易见,返回XXEE的Delimiters。
public class PipelineFactory extends ChannelInitializer<SocketChannel> { private static final StringDecoder DECODER = new StringDecoder(); private static final StringEncoder ENCODER = new StringEncoder(BufType.BYTE); private static final MessageCodec MSGCODEC = new MessageCodec(); private static final TcpServerHandler TCPSERVERHANDLE = new TcpServerHandler(); @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); //不过滤分隔符 pipeline.addLast("frame", new DelimiterBasedFrameDecoder(8192, false, Delimiters.XXEEDelimiter())); pipeline.addLast("decoder", DECODER); pipeline.addLast("encoder", ENCODER); //用MessageCodec过滤和组装分隔符 pipeline.addLast("msgcodec", MSGCODEC); pipeline.addLast("handler", TCPSERVERHANDLE); } }
MessageCodec实现如下:
@Sharable public class MessageCodec extends MessageToMessageCodec<String, String> { @Override public String encode(ChannelHandlerContext ctx, String msg) throws Exception { return msg + "XXEE"; } @Override public String decode(ChannelHandlerContext ctx, String msg) throws Exception { return msg.substring(0, msg.lastIndexOf("XXEE")); } }
实现非常简单,通过分隔符过滤后,再用StringDecode转换成String,然后通过MessageCodec过滤分隔符。发消息时,反过来的流程。
相关推荐
Netty4.0全部jar包.开发时候只需要倒入总的哪一个netty4.0.jar就行了 后缀为resources.jar的全部是源码。 简单的代码例子在netty-example-resources.jar里面。
Netty (netty-netty-4.0.56.Final.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...
描述文档请看我的个人博客:www.mesoftware.cn
NIO socket开发,netty4.0工具包。
Springboot2.0.8集成 netty4 ,使用protobuf作为ping的数据交换,比json更加的小巧,占用数据量更小,可用于任何第三方应用做心跳监控。 已完成功能: - 客户端授权验证(基于protoBuff) - 心跳检测(基于protoBuff) ...
netty4.0 关于buffe
NULL 博文链接:https://bijian1013.iteye.com/blog/2340636
Netty4.0实现http服务,客户端通过http请求,服务器进行业务处理,返回响应,交互采用json格式
netty4.0.45jar包socket和http工具包,公司最近开发一个保险项目,用到socket,经过公司10个以上项目验证,该版本的netty4.0.45相当稳定,可以在生产环境上使用。
Netty4.0.54英文版API文档,与官网中文档内容一致,方便用户在离线环境下,开发Netty
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序dsf。...netty, 4.0.28, Final, jar包, 含源码
包含javadoc,jar 两个文件夹。 doc中是文档资料。 jar是源码及常用例子,均好源码,好使。
netty4.0 各种应用类型的demo源码 比较全
Netty project - an event-driven asynchronous network application framework http://netty.io/
赠送jar包:netty-codec-mqtt-4.1.73.Final.jar; 赠送原API文档:netty-codec-mqtt-4.1.73.Final-javadoc.jar; 赠送源代码:netty-codec-mqtt-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-codec-...
Netty官方4.0.42版jar包
赠送jar包:netty-codec-dns-4.1.65.Final.jar; 赠送原API文档:netty-codec-dns-4.1.65.Final-javadoc.jar; 赠送源代码:netty-codec-dns-4.1.65.Final-sources.jar; 赠送Maven依赖信息文件:netty-codec-dns-...
netty 4.0版本
赠送jar包:netty-codec-http-4.1.27.Final.jar; 赠送原API文档:netty-codec-http-4.1.27.Final-javadoc.jar; 赠送源代码:netty-codec-http-4.1.27.Final-sources.jar; 赠送Maven依赖信息文件:netty-codec-...
赠送jar包:netty-codec-haproxy-4.1.73.Final.jar; 赠送原API文档:netty-codec-haproxy-4.1.73.Final-javadoc.jar; 赠送源代码:netty-codec-haproxy-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-...