一种利用协议描述文件自动生成通信代码的方法及系统技术方案

技术编号:14676647 阅读:85 留言:0更新日期:2017-02-19 02:12
本发明专利技术公开了一种利用协议描述文件自动生成通信代码的方法,能够自动获取并解析该协议描述文件,并且自动生成与协议描述文件相关的通信代码逻辑。由于本发明专利技术能够自动生成客户端和服务端通信代码,进而在客户端和服务段通信时,可直接调用该通信代码进行数据通信,并能够保证发送接口和接受接口的对接没有异常,同时也极大的降低了开发过程中由于客户端和服务端的疏忽可能产生的通信异常的概率。进一步的,开发者只需要关注第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件的设计,不需要去实现所有通信过程,能够大幅提高开发者的在通信部分的开发效率。

【技术实现步骤摘要】

本申请涉及通信
,尤其涉及一种利用协议描述文件自动生成通信代码的方法及系统
技术介绍
在常见的CS架构中,客户端和服务端通常是通过HTTP协议进行通信的。在客户端和服务端定义好相关的协议后,客户端需要针对定义好的协议去开发相关的访问接口程序,服务端也需要根据对应的接口去开发出相应的接口程序。在网络访问中访问网络的大体过程基本是通用的,不同的地方是协议中定义的不同数据类型。通过上面分析我们可以发现我们可以把通信过程的过程分为2个部分,其一是通用的通信方法,其二是不同的通信数据。由于方法是通用的,所以客户端和服务端在开发的时候很多时候写的代码冗余会非常多,很多代码部分都是高度相似的,软件开发人员在编写这些高度相似代码的时候是一个比较大的体力活。由于服务器和客户端的开发时分开进行的,这样就很可能会因为开发者的疏忽或者不注意导致双方通信过程中因为接口实现的差异导致无法进行通信成功。
技术实现思路
本专利技术了提供了一种利用协议描述文件自动生成通信代码的方法及系统,以解决现有通信中由于接口实现的差异导致无法进行通信的技术问题,能够提高开发效率,降低开发成本,并且能够极大的提高稳定性的方案。在实际应用中能够对开发起到非常大的作用。本专利技术提供了一种利用协议描述文件自动生成通信代码的方法,所述方法包括:获得所述协议描述文件,所述协议描述文件是对第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件;解析所述协议描述文件,并利用所述协议描述文件生成所述通信代码,所述通信代码供客户端和服务器在进行通信时调用,以实现所述客户端和所述服务端之间的通信。优选的,所述解析所述协议描述文件,包括:判断所述协议描述文件是否包含所述第一关键字;若协议描述文件包含所述第一关键字,则从所述协议描述文件解析出所述客户端和所述服务端之间往来的通信数据的描述信息;利用所述通信数据的描述信息生成第一通信代码;若协议描述文件不包含所述第一关键字,则进一步判断协议描述文件是否包含所述第二关键字;若协议描述文件包含所述第二关键字,则从所述协议描述文件解析出通信接口的接口函数描述信息;利用所述通信接口的接口函数描述信息生成第二通信代码。优选的,所述判断所述协议描述文件是否包含所述第一关键字,包括:依次获取所述协议描述文件的每行信息,并依次判断所述协议描述文件的每行信息是否为第一关键字;所述若协议描述文件包含所述第一关键字,则从所述协议描述文件解析出所述客户端和所述服务端之间往来的通信数据的描述,包括:若有一行信息为所述第一关键字,则获取所述一行信息包含的一行或者多行数据,并依次解析出所述一行或者多行数据的数据类型。所述利用所述通信数据的描述信息生成通信代码,包括:利用解析出的所述一行信息对应的所有数据类型生成第一通信代码。优选的,所述依次解析出所述一行或者多行数据的数据类型之后,包括:将所述一行或者多行数据对应的数据类型存入第一集合中。优选的,所述若协议描述文件不包含所述第一关键字,则进一步判断协议描述文件是否包含所述第二关键字,包括:若所述一行信息不为所述第一关键字,则进一步判断所述一行信息是否为第二关键字;所述若协议描述文件包含所述第二关键字,则从所述协议描述文件解析出通信接口的接口函数描述,包括:若所述一行信息是所述第二关键字,解析第二关键字包含的一行或者多行数据;依次读取所述一行信息包含的一行或者多行数据,以分离出每行数据对应的接口函数参数;依次判断每行数据对应的接口函数参数是否包含所述第一关键字;若包含,则调用所述第一集合,依次判断每行数据对应的接口函数参数的数据类型是否存在于所述第一集合中,若有一行数据对应的接口函数参数的数据类型存在于所述第一集合中,则表示所述一行数据对应的接口函数参数解析成功;利用所述通信接口的接口函数描述生成第二源文件,包括:利用解析成功的接口函数生成第二通信代码。优选的,所述依次判断每行数据对应的接口函数参数的数据类型是否存在于所述第一集合中之后,包括:若有一行数据对应的接口函数参数的数据类型存在于所述第一集合中,将所述一行数据对应的接口函数参数的数据类型保存在第二集合中。优选的,所述第一关键字为Struct(结构体)关键字,所述Struct关键字用于对客户端和服务端之间往来的通信数据的描述;所述第二关键字为Interface(接口)关键字,所述Interface关键字用于所述客户端和所述服务端之间的通信行为的描述。优选的,所述Struct关键字包含的数据类型至少包括:浮点型float、整形int、长整型long、双精度浮点型double、布尔型boolean。优选的,利用所述协议描述文件生成所述通信代码之后,包括:将所述通信代码发送给所述服务端。在本专利技术实施例中,还公开了一种利用协议描述文件自动生成通信代码的系统,包括:获得模块,用于获得所述协议描述文件,所述协议描述文件是对第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件;解析模块,用于解析所述协议描述文件,并利用所述协议描述文件生成所述通信代码,所述通信代码供客户端和服务器在进行通信时调用,以实现所述客户端和所述服务端之间的通信。通过本专利技术的一个或者多个技术方案,本专利技术具有以下有益效果或者优点:本专利技术的方案提供了一种利用协议描述文件自动生成通信代码的方法,能够自动获取并解析该协议描述文件,并且自动生成与协议描述文件相关的通信代码逻辑。由于本专利技术能够自动生成客户端和服务端通信代码,进而在客户端和服务段通信时,可直接调用该通信代码进行数据通信,并能够保证发送接口和接受接口的对接没有异常,同时也极大的降低了开发过程中由于客户端和服务端的疏忽可能产生的通信异常的概率。进一步的,开发者只需要关注第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件的设计,不需要去实现所有通信过程,能够大幅提高开发者的在通信部分的开发效率。附图说明图1为本专利技术实施例中一种利用协议描述文件自动生成通信代码的方法的实施过程图;图2为本专利技术实施例中解析协议描述文件的流程图;图3为本专利技术实施例中一种利用协议描述文件自动生成通信代码的系统的组成示意图。具体实施方式为了使本申请所属
中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。CS:Client/Server架构,即服务器/客户端架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。HTTP协议:超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。值类型的数据:值类型这个概念经常出现在类似C#,JAVA等编程语言的书籍中.\值类型\直接将内存存储在栈内,由系统自动释放资源的数据类型.引用类型的数据:引用类型由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装本文档来自技高网
...
一种利用协议描述文件自动生成通信代码的方法及系统

【技术保护点】
一种利用协议描述文件自动生成通信代码的方法,其特征在于,所述方法包括:获得所述协议描述文件,所述协议描述文件是对第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件;解析所述协议描述文件,并利用所述协议描述文件生成所述通信代码,所述通信代码供客户端和服务器在进行通信时调用,以实现所述客户端和所述服务端之间的通信。

【技术特征摘要】
1.一种利用协议描述文件自动生成通信代码的方法,其特征在于,所述方法包括:获得所述协议描述文件,所述协议描述文件是对第一关键字和第二关键字进行自定义协议格式之后形成的用于描述通信协议的描述文件;解析所述协议描述文件,并利用所述协议描述文件生成所述通信代码,所述通信代码供客户端和服务器在进行通信时调用,以实现所述客户端和所述服务端之间的通信。2.如权利要求1所述的方法,其特征在于,所述解析所述协议描述文件,包括:判断所述协议描述文件是否包含所述第一关键字;若协议描述文件包含所述第一关键字,则从所述协议描述文件解析出所述客户端和所述服务端之间往来的通信数据的描述信息;利用所述通信数据的描述信息生成第一通信代码;若协议描述文件不包含所述第一关键字,则进一步判断协议描述文件是否包含所述第二关键字;若协议描述文件包含所述第二关键字,则从所述协议描述文件解析出通信接口的接口函数描述信息;利用所述通信接口的接口函数描述信息生成第二通信代码。3.如权利要求2所述的方法,其特征在于,所述判断所述协议描述文件是否包含所述第一关键字,包括:依次获取所述协议描述文件的每行信息,并依次判断所述协议描述文件的每行信息是否为第一关键字;所述若协议描述文件包含所述第一关键字,则从所述协议描述文件解析出所述客户端和所述服务端之间往来的通信数据的描述,包括:若有一行信息为所述第一关键字,则获取所述一行信息包含的一行或者多行数据,并依次解析出所述一行或者多行数据的数据类型。所述利用所述通信数据的描述信息生成通信代码,包括:利用解析出的所述一行信息对应的所有数据类型生成第一通信代码。4.如权利要求3所述的方法,其特征在于,所述依次解析出所述一行或者多行数据的数据类型之后,包括:将所述一行或者多行数据对应的数据类型存入第一集合中。5.如权利要求4所述的方法,其特征在于,所述若协议描述文件不包含所述第一关键字,则进一步判断协议描述文件是否包含所述第二关键字,包括:若所述一行信息不为所述第一关键字,则进一步判断所述一行信息是否为第二关键字;所述若协议描述文件包含所述第二...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1