首页> 中国专利> 网络通信中不同字节序类型之间的适配方法

网络通信中不同字节序类型之间的适配方法

摘要

本发明公开了一种网络通信中不同字节序类型之间的适配方法,包括四个步骤:设置适配前后的平台字节序类型信息、获取需要适配的数据、根据需要适配数据的数据类型和适配前后的平台字节序类型信息进行字节序转换、提供适配后的数据。当平台字节序类型信息不同或者发生变化时,只需要修改配置信息就可以,而不需要多个版本的类似代码或者修改程序代码本身,能够适应各种平台环境及其变化的要求,便于使用和维护,同时也为传统的特定字节序适配方法向标准网络字节序适配方法的转变提供了平稳、方便的过渡办法。

著录项

  • 公开/公告号CN1838665A

    专利类型发明专利

  • 公开/公告日2006-09-27

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200510056734.2

  • 发明设计人 何沁;

    申请日2005-03-24

  • 分类号H04L29/06;H04L1/00;

  • 代理机构北京凯特来知识产权代理有限公司;

  • 代理人郑立明

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 17:42:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-17

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20100811 终止日期:20170324 申请日:20050324

    专利权的终止

  • 2010-08-11

    授权

    授权

  • 2006-11-22

    实质审查的生效

    实质审查的生效

  • 2006-09-27

    公开

    公开

说明书

技术领域

本发明涉及一种数字数据处理方法,尤其涉及一种网络通信中不同字节序类型之间的适配方法。

背景技术

目前,有很多通讯系统在通讯消息中采用了缺省的本地字节序。当系统变得越来越大,各个不同的通信模块在不同的操作平台下运行,比如WINDOWS PC和IBM AIX,就会导致这些模块之间所采用的字节序不同,比如有的采用低位字节在前、高位字节在后的LittleEndian字节序类型,而有的采用高位字节在前、低位字节在后的BigEndian字节序类型,等等。因此在网络通信时可能无法正确的理解对方发过来的消息。

传统的做法是,在程序代码中每一处需要进行网络通信的地方,分别对需要发送到各个不同模块的消息进行特定字节序的编码,以转换成相应的字节序。这种做法导致工作量非常大,且进行字节序转换的代码分布在程序中的多个地方,产生代码冗余。且代码适应性不强,当需要改变自身以及通信对端模块所在的操作系统和硬件平台时,需要重新修改各处的代码,出一套对应的版本。

为此,国际上提出了解决这一问题的标准做法:在通信时,通信的双方都采用标准网络字节序。这样,所有的通信系统在发送消息时把本地字节序转换成标准网络字节序、在接收消息时把标准网络字节序转换成本地字节序,就不会存在由于字节序不同而导致的理解障碍。

但是,由于大量已有的系统已经采用了传统的编码方法,其在网络中传送的并不是标准网络字节序。所以,当采用标准网络字节序的新系统通信与传统系统通信时就存在兼容性问题,也就需要对已有传统系统做大量的软件代码的修改升级。

发明内容

鉴于上述现有技术所存在的问题,本发明的目的是提供一种便于使用和维护、能灵活适应各种通信平台环境及其变化要求的、不同字节序类型之间的适配方法。

本发明的目的是通过以下技术方案实现的:

本发明提供了一种网络通信中不同字节序类型之间的适配方法,包括如下步骤:

A、根据配置文件设置适配前后的平台字节序类型信息;

B、获取需要适配的数据;

C、由处理模块根据需要适配数据的数据类型和适配前后的平台字节序类型信息,进行字节序转换;

D、提供适配后的数据。

其中,所述步骤A中的配置文件中可以包含有通信主体与所用平台的字节序类型之间的对应关系。

另外,所述步骤A中的配置文件中还可以包含有字节序类型与其字节存储顺序特征之间的对应关系。

所述步骤C中的处理模块为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程。

其中,所述步骤C中字节序转换的具体操作可以通过字节数组中元素位置的调换来实现的。

所述步骤C中的处理模块是用面向对象语言编写的一个类,所述的专用过程是类的成员函数。

其中,所述步骤A中对适配前后的平台字节序类型信息的设置可以用所述类的构造函数来实现的。

所述步骤A中把适配后的平台字节序类型信息设置为本地平台的字节序类型信息。

或者,所述步骤A中把适配前的平台字节序类型信息设置为本地平台的字节序类型信息。

此外,所述步骤C中的处理模块还可以是用面向过程语言编写的一个有适配前后的字节序类型信息、适配数据、适配数据的数据类型信息作参数的过程,所述的专用过程是有适配前后的字节序类型信息、适配数据作参数的子过程。

由上述本发明提供的技术方案可以看出,本发明由于对平台字节序类型信息的来源采用了配置的方式,这样,当平台字节序类型信息不同或者发生变化时,只需要修改相应的配置就可以,而不需要多个版本的类似代码或者修改程序代码本身,就能够灵活地适应各种具有不同字节序类型的平台环境及其字节序类型的变化,便于使用和维护。

其中,通过为不同通信主体设定其所用平台的字节序类型,可以适应由于平台不同而引起的字节序类型不同;也可以适应由于平台变化而引起的字节序类型变化,不论这种变化是对方通信主体的变化,还是本方通信主体的变化,或者它们同时变化;只要这种字节序类型是事先可以定义或者被穷尽的。

而通过字节序类型与其字节存储顺序特征之间的对应关系,本发明还可以自己定义一种新的字节序类型,从而使得本发明可以适应更加复杂、陌生的环境,即便遇上一种全新的、事先没有被定义和穷尽的字节序类型,也只要修改配置文件即可,而不必修改程序代码本身。

而通过为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程,本发明就为各种数据的字节序类型转换提供了完整、统一的接口,更加便于使用和维护。

同样,不论是与所用平台是采用特定字节序适配方法的对方通信主体通信,还是与采用标准网络字节序的对方通信主体通信,采用本发明时都可以根据对方通信主体所用平台的要求设置相应的字节序类型。这样,本发明的适配方法就兼容标准网络字节序适配方法和传统的特定字节序适配方法,从而为传统的特定字节序适配方法向标准网络字节序适配方法的转变提供了平稳、方便、灵活的过渡办法。

附图说明

图1是本发明应用环境的示意图;

图2是本发明的基本处理流程。

具体实施方式

本发明的核心思想是通过把适配前后的字节序类型信息采用配置的方式,并在适配处理中根据适配前后的字节序类型信息和所适配数据的数据类型进行字节序转换,而不是进行特定字节序类型转换编码的方式,来提高字节序适配方法的灵活性。

下面结合附图对发明作进一步的说明。

这样,如图1所示,本发明的应用环境中主要涉及四个实体:字节序类型信息配置文件14、处理模块13、需要适配的数据11和适配后的数据12。其中字节序类型信息配置文件14是本发明的应用中新增的内容,它在现有的特定字节序编码适配方法中是没有的;而处理模块13用于根据数据类型和适配前后的平台字节序类型信息,进行数据的字节序转换。

这四个实体间的相互关系是根据处理流程联系起来的。本发明的基本处理流程可以为四个步骤,如图2所示,依次是:

步骤21:根据配置文件14设置适配前后的平台字节序类型信息;

配置文件14包含有通信主体与所用平台的字节序类型之间的对应关系。这种对应关系如表1所示。

表1、通信主体与所在平台的字节序类型的对应关系

 通信主体  所在平台的字节序类型 主体平台1  类型1 主体平台2  类型2 ……

通过为不同通信主体设定其所用平台的字节序类型,不需要多个版本的类似代码或者修改程序代码本身,就可以适应由于平台不同而引起的字节序类型不同;也可以适应由于平台变化而引起的字节序类型变化,不论这种变化是对方通信主体的变化,还是本方通信主体的变化,或者它们同时变化;只要这种字节序类型是事先可以定义或者被穷尽的。

配置文件14中还可以包含有字节序类型与其字节存储顺序特征之间的对应关系。一种字节序类型的字节存储顺序特征是通过这种字节序类型下所有基本数据类型的存储结构顺序来表示的,特别是用那些受字节序类型影响的、多字节的基本数据类型的存储结构顺序来表示的。这种对应关系如表2所示。

表2、字节序类型与字节存储顺序特征的对应关系

 字节序类型  双字节整数  四字节整数…… 类型1(BigEndian)  21  4321 类型2(LittleEndian)  12  1234 ……

这种字节序类型与字节存储顺序特征的对应关系其实就是对字节序类型的定义。通过这种对应关系,在字节序转换过程中,就可以根据适配前后字节序类型对应的具体存储顺序特征来进行处理。这样,即使出现一种全新的字节序类型,也只需要在配置文件中增加此新的字节序类型及其对应的字节存储顺序特征即可,而不必修改软件代码;这就极大地拓展了本发明对于不同平台环境、特别是未知的新字节序类型平台环境的适应能力。

步骤21中适配前后的平台字节序类型信息的设置通常是在使用适配方法时通过参数的形式传递给处理模块13的。当处理模块13是用面向对象的类时,可以用类的构造函数来进行适配前后的平台字节序类型信息的设置。这样,在类实例化时就把适配前后的适配前后的平台字节序类型信息设置好,可以进一步简化和方便适配方法的使用。

当把适配后的平台字节序类型信息设置为本地平台的字节序类型信息时,处理模块13就可以用于读取网络通信中的数据。这时,应当把适配前的平台字节序类型信息设置为对方通信主体所用平台的字节序类型信息。

当把适配前的平台字节序类型信息设置为本地平台的字节序类型信息时,处理模块13就可以用于向网络中发出通信数据。这时,就应当把适配后的平台字节序类型信息设置为对方通信主体所用平台的字节序类型信息。

当适配前后的字节序类型信息就都不设置成本地平台的字节序类型,处理模块13就可以成为一个中继或者网关完成字节序类型的适配,但并不关心通信数据的具体内容。

步骤22、获取需要适配的数据11;

步骤23、由处理模块13根据需要适配数据的数据类型和适配前后的平台字节序类型信息,进行字节序转换;

字节序转换的具体操作可以通过字节数组中元素位置的调换来实现的,也可以用其它实现字节移位的方法来实现。

处理模块13可以为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程。比如,当处理模块13是用面向对象语言编写的一个类时,所述的专用过程就是类的成员函数。而当处理模块13用面向过程语言编写时,处理模块13就是一个有适配前后的字节序类型信息、适配数据、适配数据的数据类型标识作参数的过程,同时所述的专用过程是有适配前后的字节序类型信息、适配数据作参数的子过程。这样,通过为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程,本发明就为各种数据的字节序类型转换提供了完整、统一的接口,更加便于使用和维护。

步骤24、提供适配后的数据12。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。总之,本发明的保护范围应该以权利要求所能涵盖的最大保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号