法律状态公告日
法律状态信息
法律状态
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、通信主体与所在平台的字节序类型的对应关系
通过为不同通信主体设定其所用平台的字节序类型,不需要多个版本的类似代码或者修改程序代码本身,就可以适应由于平台不同而引起的字节序类型不同;也可以适应由于平台变化而引起的字节序类型变化,不论这种变化是对方通信主体的变化,还是本方通信主体的变化,或者它们同时变化;只要这种字节序类型是事先可以定义或者被穷尽的。
配置文件14中还可以包含有字节序类型与其字节存储顺序特征之间的对应关系。一种字节序类型的字节存储顺序特征是通过这种字节序类型下所有基本数据类型的存储结构顺序来表示的,特别是用那些受字节序类型影响的、多字节的基本数据类型的存储结构顺序来表示的。这种对应关系如表2所示。
表2、字节序类型与字节存储顺序特征的对应关系
这种字节序类型与字节存储顺序特征的对应关系其实就是对字节序类型的定义。通过这种对应关系,在字节序转换过程中,就可以根据适配前后字节序类型对应的具体存储顺序特征来进行处理。这样,即使出现一种全新的字节序类型,也只需要在配置文件中增加此新的字节序类型及其对应的字节存储顺序特征即可,而不必修改软件代码;这就极大地拓展了本发明对于不同平台环境、特别是未知的新字节序类型平台环境的适应能力。
步骤21中适配前后的平台字节序类型信息的设置通常是在使用适配方法时通过参数的形式传递给处理模块13的。当处理模块13是用面向对象的类时,可以用类的构造函数来进行适配前后的平台字节序类型信息的设置。这样,在类实例化时就把适配前后的适配前后的平台字节序类型信息设置好,可以进一步简化和方便适配方法的使用。
当把适配后的平台字节序类型信息设置为本地平台的字节序类型信息时,处理模块13就可以用于读取网络通信中的数据。这时,应当把适配前的平台字节序类型信息设置为对方通信主体所用平台的字节序类型信息。
当把适配前的平台字节序类型信息设置为本地平台的字节序类型信息时,处理模块13就可以用于向网络中发出通信数据。这时,就应当把适配后的平台字节序类型信息设置为对方通信主体所用平台的字节序类型信息。
当适配前后的字节序类型信息就都不设置成本地平台的字节序类型,处理模块13就可以成为一个中继或者网关完成字节序类型的适配,但并不关心通信数据的具体内容。
步骤22、获取需要适配的数据11;
步骤23、由处理模块13根据需要适配数据的数据类型和适配前后的平台字节序类型信息,进行字节序转换;
字节序转换的具体操作可以通过字节数组中元素位置的调换来实现的,也可以用其它实现字节移位的方法来实现。
处理模块13可以为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程。比如,当处理模块13是用面向对象语言编写的一个类时,所述的专用过程就是类的成员函数。而当处理模块13用面向过程语言编写时,处理模块13就是一个有适配前后的字节序类型信息、适配数据、适配数据的数据类型标识作参数的过程,同时所述的专用过程是有适配前后的字节序类型信息、适配数据作参数的子过程。这样,通过为所有的基本数据类型定制了依据平台字节序类型信息根据需要进行字节序转换的专用过程,本发明就为各种数据的字节序类型转换提供了完整、统一的接口,更加便于使用和维护。
步骤24、提供适配后的数据12。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。总之,本发明的保护范围应该以权利要求所能涵盖的最大保护范围为准。
机译: (54)标题:实现会话持久性和可靠性的协议(57)摘要:本发明涉及网络通信。封装多个次级协议的第一协议用于通过网络进行通信。使用第一个协议可提供会话持久性以及客户端和主机服务之间的可靠连接。在本发明的这个方面的一个实施例中,使用辅助协议之一在第一协议服务和主机服务之间建立第二连接。第一协议服务和主机服务之间的通信是通过辅助协议之一进行的。在另一个实施例中,使用多个第二协议在第一协议服务和多个主机服务之间建立多个第二连接。具体地,多个第二连接中的每个在第一协议服务和不同的主机服务之间建立,并且每个
机译: 用于容纳电气模块的模块化盖组件,其适配器位于开口中,其中适配器可根据两个不同的位置放置在盖中,适配器可以在其中包装不同类型的连接单元
机译: 用于在不同字节序格式之间转换数据的设备和方法以及具有该设备的系统