一种网络传输服务构件及网络传输系统的制作方法_2

文档序号:8225935阅读:来源:国知局
议,并调用NetTool::RegisterProtocols O函数将自定义协议进行注册,完成上述步骤后,即可使用自定义协议的协议实例。
[0052]在本发明一个实施例中,INetTool类为所有协议的协议实例提供统一的存储空间,所有协议实例接收到的数据均缓存在同一块内存中。
[0053]在本发明一个实施例中,所述网络传输服务构件通过定义父类,各协议实例继承父类定义的接口实现网络传输的通信功能。协议类之间的依赖关系可以参见图2所示。
[0054]本发明实施例的网络传输服务构件可以有效的解决不同网络协议、操作环境下实现网络编程的差异问题;本构件对常用网络传输协议以及特种行业网络传输协议进行整体封装,为用户提供统一、简单的网络传输服务接口,屏蔽不同网络传输协议以及操作系统差异对编码的影响,从而缩短研发周期,降低研发成本及维护成本;通过外部协议加载接口,实现协议的动态加载,增强构件的可扩展性。
[0055]本发明一个实施例中,对于TCP网络协议,实现将传统使用方法中所需的socket/connect/bind等套接字创建/连接/绑定过程进行整体封装,简化用户使用及对协议实现过程的了解;部分自定义网络传输协议封装了部分用户自定义网络协议。
[0056]本发明一个实施例还提出了一种网络传输系统,参见图3,包括:发送端301,接收端302以及本发明实施例提出的任意一种网络传输服务构件303,其中,
[0057]所述发送端301,用于通过网络初始化接口调用构件动态库中的初始化函数模块,填充协议类型及初始化信息;通过数据发送接口调用所述构件动态库中的发送函数模块,填充接收方地址信息以及需要发送的内容信息;
[0058]所述接收端302,用于通过网络初始化接口调用构件动态库中的初始化函数模块,填充协议类型及初始化信息;用于通过所述数据接收接口调用所述构件动态库中的接收函数模块,填充接收数据所需的内存信息。
[0059]在本发明一个实施例中,对于发送端301填充的初始化信息,不同协议该初始化信息值含义不用,比如TCP协议下,该值表示自身通信使用的端口号。
[0060]在本发明一个实施例中,网络传输服务构件303中的发送函数模块,执行在短报文的数据发送失败时,使用套接字在设定时间内进行尝试重连,重连成功后将数据重新发送出去;在长报文的数据发送时,执行在第一次发送的报文块中增加了一个随机码作为报文标识,如果在传输过程中断线,则在重连后在断点处将该随机码重新加入到报文块中进行发送;
[0061]网络传输服务构件303中的接收函数模块,执行当接收到报文块后,判断报文块的随机码是否与未接收完的长报文的随机码相同,如果相同,则表明该报文块为该长报文的后续部分,接收端将报文块进行重组,还原成一个完整的长报文。
[0062]本发明实施例中,网络传输服务构件中,可以利用INetTool类为各网络传输协议提供标准父类接口,所有协议实例必须按照INetTool类规定的接口进行封装。INetTool类为各协议实例提供统一的存储空间,所有协议实例接收到的数据均在同一块内存中进行缓存。
[0063]本发明实施例中,特种网络协议封装特种应用环境网络接口,使得网络接口的使用更加方便。TCP网络协议对原始TCP网络传输协议进行二次封装,屏蔽了部分繁琐的操作,使得用户只需要关心给谁发送什么数据、发送结果是什么,或者从谁接收到什么数据。UDP网络传输协议实现对原始UDP网络接口的二次封装。
[0064]本发明实施例中,TCP网络协议封装过程中,对大报文以及文件采用分片传输,第一片数据含一个GUID随机码用于断点续传。当链接断开或者发送失败时,发送端将从断点处继续发送数据,并在接收端将数据进行组合,重新生成原报文。发送端发现链接断开时,将进行尝试重连,如果超时未能建立连接,则将返回错误码,提示用户发送错误,并给出错误原因。
[0065]本发明的各个实施例至少具有如下有益效果:
[0066]1、通过整体设计封装,解决不同网络传输协议、不同操作系统、不同编码语言下带来的网络编程差异问题,为用户提供接口统一、使用方便的网络传输服务;通过外部协议的加载,提高服务的可扩展性和适用性。
[0067]2、对多种网络传输协议进行整体封装,为用户提供统一的网络传输服务接口。
[0068]3、对不同操作系统、开发语言下的网络传输服务进行整体封装,屏蔽操作系统、开发语言差异带来的编码影响。
[0069]4、通过外部协议加载功能,实现用户自定义协议的加载,具有较强的可扩展能力和适应能力。
[0070]需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0071]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.网络传输服务构件,其特征在于,包括: 构件动态库,存储有网络传输使用的至少一种协议的协议实例,每一个协议实例被按照规定的接口进行封装,且每一个协议实例包括与该协议实例对应的初始化函数模块、接收函数模块以及发送函数模块; 网络初始化接口,提供用于调用所述构件动态库中目标协议对应的初始化函数模块的接口 ; 数据发送接口,提供用于调用所述构件动态库中目标协议对应的发送函数模块的接P ; 数据接收接口,提供用于调用所述构件动态库中目标协议对应的接收函数模块的接P ; 外部协议加载接口,提供用于向所述构件动态库中加载新增协议的实例的接口。
2.根据权利要求1所述的网络传输服务构件,其特征在于,所述构件动态库中,每一个协议实例进一步包括对应该协议实例的消息解析函数模块;其中,所述构件动态库中, 所述初始化函数模块用于提供对应协议的实例指针,并执行对应协议的网络传输的初始化操作; 所述网络初始化接口用于根据该协议实例指针调用所述初始化函数; 所述接收函数模块,用于在初始化时启动,并执行对应协议的所述网络传输的接收操作; 所述发送函数模块,用于执行对应协议的所述网络传输的发送操作; 所述消息解析函数模块,用于格式化数据。
3.根据权利要求1所述的网络传输服务构件,其特征在于,所述构件动态库,每一个协议实例被按照INetTool类规定的接口进行封装。
4.根据权利要求1所述的网络传输服务构件,其特征在于,所述至少一种协议的协议实例包括:TCP协议的协议实例、UDP协议的协议实例及自定义协议的协议实例。
5.根据权利要求1所述的网络传输服务构件,其特征在于,所有协议的协议实例缓存在同一块内存中。
6.根据权利要求1至5中任一所述的网络传输服务构件,其特征在于,所述构件通过定义父类,各协议实例继承父类定义的接口实现网络传输。
7.网络传输系统,其特征在于,包括:发送端,接收端以及如权利要求1至6中任一所述的网络传输服务构件,其中, 所述发送端,用于通过所述网络初始化接口调用所述构件动态库中的初始化函数模块,填充协议类型及初始化信息;通过所述数据发送接口调用所述构件动态库中的发送函数模块,填充接收方地址信息以及需要发送的内容信息; 所述接收端,用于通过所述网络初始化接口调用所述构件动态库中的初始化函数模块,填充协议类型及初始化信息;用于通过所述数据接收接口调用所述构件动态库中的接收函数模块,填充接收数据所需的内存信息。
8.根据权利要求7所述的网络传输系统,其特征在于, 所述发送函数模块,执行在短报文的数据发送失败时,使用套接字在设定时间内进行尝试重连,重连成功后将数据重新发送出去;在长报文的数据发送时,执行在第一次发送的报文块中增加了一个随机码作为报文标识,如果在传输过程中断线,则在重连后在断点处将该随机码重新加入到报文块中进行发送; 所述接收函数模块,执行当接收到报文块后,判断报文块的随机码是否与未接收完的长报文的随机码相同,如果相同,则表明该报文块为该长报文的后续部分,接收端将报文块进行重组,还原成一个完整的长报文。
【专利摘要】本发明提供一种网络传输服务构件及网络传输系统。该构件包括:构件动态库,存储有网络传输使用的至少一种协议的协议实例,每一个协议实例被按照规定的接口进行封装,且每一个协议实例包括与该协议实例对应的初始化函数模块、接收函数模块以及发送函数模块;网络初始化接口,提供用于调用所述构件动态库中目标协议对应的初始化函数模块的接口;数据发送接口,提供用于调用所述构件动态库中目标协议对应的发送函数模块的接口;数据接收接口,提供用于调用所述构件动态库中目标协议对应的接收函数模块的接口;外部协议加载接口,提供用于向所述构件动态库中加载新增协议的实例的接口。本发明能够提供统一的网络传输服务。
【IPC分类】H04L29-06, H04L12-46
【公开号】CN104539506
【申请号】CN201510041480
【发明人】马骏, 邵兵, 乔富龙
【申请人】浪潮集团有限公司
【公开日】2015年4月22日
【申请日】2015年1月27日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1