`
zybing
  • 浏览: 457149 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【Mina】Codec Filter

阅读更多

目前的几种协议制定方法:

 

 

There are three common techniques for splitting the stream of bytes into messages:

  • use fixed length messages 
    固定长度的
  • use a fixed length header that indicates the length of the body
    固定协议头长度,内容长度可变
  • using a delimiter; for example many text-based protocols append a newline (or CR LF pair) after every message 
    采用分隔符的方式

 

-------------------------------------------------------------------------------

在Mina中,有为协议解析的接口,分为编码和解码2个接口:

 

ProtocolEncoder

 

 

 

ProtocolDecoder:

 

 

---------------------------------------------

 

在使用这2个接口的时候,还有一个接口需要关心:ProtocolCodecFactory

这个接口获取解码类和编码类;

 

还记得在timerserver中:

acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));

 ProtocolCodecFilter就是通过ProtocolCodecFactory获取到编码和解码类,完成对应的工作;

 

 

 

 

分享到:
评论

相关推荐

    mina2.0 含11个jar包

    mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-integration-ognl-2.0.0-M6.jar mina-integration-...

    Mina 2.0 User Guide(Mina 2.0 用户指南)

    Chapter 11 - Codec Filter Chapter 12 - Executor Filter Chapter 13 - SSL Filter Chapter 14 - Logging Filter Part III - MINA Advanced Chapter 15 - Debugging Chapter 16 - State Machine Chapter 17 - ...

    mina2.0.19所需的11个jar包

    3. `mina-filter-codec`: 包含了各种编码解码器,如Protobuf、JSON等,使得数据在传输前可以被高效地编码和解码。 4. `mina-filter-execchain`: 提供了执行链过滤器,用于构建复杂的处理逻辑。 5. `mina-filter-...

    Mina+Socket通信

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaServer { public static void main(String[] args) ...

    Apache MINA 2.0 用户指南( 缺第一章节)

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class EchoServer { private IoAcceptor acceptor = new ...

    Mina-2.0.7主要jar包

    5. **mina-filter-codec.jar**:包含了各种编码器和解码器,如Protobuf、JSON等,用于在网络传输中进行数据的序列化和反序列化。 6. **mina-filter-execution-throttle.jar**:提供了执行限速过滤器,可以根据策略...

    mina入门例子

    import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.filter.executor.OrderedThreadPoolExecutor; import org.apache.mina....

    mina框架的demo 入门,开发

    import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaServer { ...

    mina开发步骤

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class Demo1Server { private static Logger logger = Logger....

    mina开发手册与mina完全自学手册.rar

    4. **Protocol Codec**:编码和解码是网络通信中的重要环节,Mina提供了ProtocolCodec接口,允许开发者自定义协议的编码和解码规则。 5. **服务端与客户端构建**:学习如何使用Mina API创建服务端和客户端,监听...

    Mina2.0完全剖析,完全自学手册

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class Demo1Server { private static final org.slf4j.Logger ...

    Mina入门:mina版之HelloWorld

    2. **Filter**:过滤器是Mina中的重要概念,它允许我们对网络通信的数据进行处理。开发者可以定义多个过滤器,每个过滤器可以执行特定的操作,如数据编码、解码或安全检查。过滤器链的概念使得我们可以按顺序处理...

    Mina 2.0快速入门与源码解析

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class ...

    MiNA框架新人指导

    acceptor.getFilterChain().addLast("codec", filter); acceptor.bind(new InetSocketAddress(1314), new ServerHandler()); ``` 其中`ServerHandler`是一个实现了`IoHandler`接口的类,用于处理客户端发来的请求。...

    MinaClient

    在MinaDemo的实现中,开发者可能自定义了适配Android环境的Session、Codec和Handler,确保在移动设备上也能高效稳定地运行。同时,由于Android的内存限制和多线程特性,还需要特别注意资源管理和线程安全问题。 ...

    apache Mina的完整学习资料

    3. **Protocol Codec**:Apache Mina提供了多种编码器和解码器,如ByteToMessageDecoder和MessageToByteEncoder,用于处理不同协议的数据格式转换。 4. **NIO(Non-blocking I/O)**:Mina利用Java的NIO库,实现高效...

    mina编解码示例

    在Mina中,编码和解码是通过自定义的`Codec`实现的,它允许开发者将原始字节流转换为有意义的对象,反之亦然。 首先,我们需要理解Mina的核心概念。`Session`代表了网络连接,`Filter`是处理I/O事件的组件,而`...

    MINA 2.0.9源码

    `Filter`是MINA的另一个核心组件,它们是处理网络事件和数据的中间件,可以串联起来形成一个过滤器链,实现数据的预处理和后处理。通过自定义Filter,开发者可以轻松地插入自己的业务逻辑。 `Buffer`是MINA中的缓冲...

    mina网络通信实例

    Filter是MINA中的核心概念,它类似于Servlet中的Filter,可以对数据进行过滤、转换等操作。Session代表了网络连接,保存了连接状态和传输数据。Handler是业务逻辑处理的接口,负责处理实际的网络事件。ProtocolCodec...

    Mina Socket 源代码

    在源代码中,你可能会看到自定义的 Codec 类,它们负责将应用程序对象与网络字节流之间进行转换。 8. **事件处理** Mina 的事件驱动模型允许开发者对特定的网络事件(如连接建立、数据到达、连接关闭等)做出响应...

Global site tag (gtag.js) - Google Analytics