博客
关于我
Mina中的协议制订和解析策略
阅读量:801 次
发布时间:2023-02-09

本文共 621 字,大约阅读时间需要 2 分钟。

协议的制定与编解码技术

在编码与解码技术中,协议的制定是基础且关键的环节。以Mina平台上的TextLineCodecFactory为例,它通过检测文本换行符来实现数据的转换,这正是协议的直接体现。

为什么需要协议?

在数据传输过程中,服务端与客户端如何准确识别消息的边界?面对不断到来的二进制数据,如何判断一个消息的完整性?这些都需要通过预先定义的规则来解决。以QQ聊天为例,发送消息时会自动生成换行符,接收方通过识别这个换行符来判断消息的结束,这正是协议的作用。

常见协议制定方法

  • 定长消息法

    数据传输端规定固定长度的数据传输,适用于简单指令。例如,使用特定的双字节编码来表示启动(AA)或关闭(BB)等操作。

  • 字符定界法

    使用特殊字符作为数据的结束标志。例如,Windows使用\r\n,而Linux使用\n作为文本换行符。接收方通过检测这些字符来标识消息的结束。

  • 定长报文头法

    报文头包含协议编号和数据长度信息。例如,协议号加数据长度字段,接收方可以根据长度信息准确读取数据的完整性。这种方法灵活且广泛应用于HTTP协议中的Content-Length字段。

  • 编解码的定义

    将二进制数据转换为Java对象称为解码(拆包),而将Java对象转换为二进制数据则称为编码(打包)。这一过程依赖于预先制定的协议,确保数据的准确传输和正确解析。

    以上内容转载自:https://my.oschina.net/boonya/blog/126943

    你可能感兴趣的文章
    NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_02---大数据之Nifi工作笔记0034
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO_通道之间传输数据
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>