编解码器

就像很多标准的架构模式都被各种专用框架所支持一样,常见的数据处理模式往往也是目标实现的很好的候选对象,它可以节省开发人员大量的时间和精力。

当然这也适应于本章的主题:编码和解码,或者数据从一种特定协议的格式到另一种格式的转换。这些任务将由通常称为编解码器的组件来处理。

Netty 提供了多种组件,简化了为了支持广泛的协议而创建自定义的编解码器的过程。

例如,如果你正在构建一个基于Netty 的邮件服务器,那么你将会发现Netty 对于编解码器的支持对于实现POP3、IMAP 和SMTP 协议来说是多么的宝贵。

什么是编解码器

每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换。

这种转换逻辑由编解码器处理,编解码器由编码器和解码器组成,它们每种都可以将字节流从一种格式转换为另一种格式。

那么它们的区别是什么呢?

如果将消息看作是对于特定的应用程序具有具体含义的结构化的字节序列—它的数据。

那么编码器是将消息转换为适合于传输的格式(最有可能的就是字节流);而对应的解码器则是将网络字节流转换回应用程序的消息格式。

因此,编码器操作出站数据,而解码器处理入站数据。

记住这些背景信息,接下来让我们研究一下Netty 所提供的用于实现这两种组件的类。

个人理解

  1. 编解码器,其实可以理解为一种高度的抽象。

  2. 我说出的话,我写下的文字,都可以理解为一种编码。别人理解我说的话,看我写的文字,这就是一种解码。

  3. 忽然想到脑机接口,可以避免这种编码=》解码的过程。

参考资料

《Netty in Action》 P150

  • key

codec