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

文档序号:8225935阅读:359来源:国知局
一种网络传输服务构件及网络传输系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种网络传输服务构件及网络传输系统。
【背景技术】
[0002]在通信网络中,网络传输服务是实现各业务数据交互的必要技术,实现网络上多台机器间的数据交互功能。当前常用的网络传输协议有TCP协议、UDP协议等。一般情况下,各网络传输协议提供的接口名称、使用方法均不相同,不同操作系统、编码语言下的同一网络传输协议接口名称通常也存在一定差异,这些都对网络编程带来一定的影响,从而延长了研发周期,并在项目开发、后期维护、系统迀移等过程中生成大量不必要成本。
[0003]目前各网络传输服务一般都是由网络中的发送端比如终端或服务器对使用的某一类特定网络传输协议进行单独封装,完成该特定网络协议下的所有完整的封装处理,接收端也必须完成对应某一类特定网络传输协议的所有解封装的处理及解析过程,从而无法为用户提供统一的网络传输服务,并导致各协议网接口不同,用户的封装处理过于复杂。
[0004]另外,当系统需要迀移、网络协议需要更换时,现有技术对每一个特定的网络传输协议单独封装方式必然使得研发周期延长,带来不必要的项目投入。

【发明内容】

[0005]本发明提供一种网络传输服务构件及网络传输方法,能够提供统一的网络传输服务。
[0006]网络传输服务构件,包括:
[0007]构件动态库,存储有网络传输使用的至少一种协议的协议实例,每一个协议实例被按照规定的接口进行封装,且每一个协议实例包括与该协议实例对应的初始化函数模块、接收函数模块以及发送函数模块;
[0008]网络初始化接口,提供用于调用所述构件动态库中目标协议对应的初始化函数模块的接口 ;
[0009]数据发送接口,提供用于调用所述构件动态库中目标协议对应的发送函数模块的接口 ;
[0010]数据接收接口,提供用于调用所述构件动态库中目标协议对应的接收函数模块的接口 ;
[0011 ] 外部协议加载接口,提供用于向所述构件动态库中加载新增协议的实例的接口。
[0012]所述构件动态库中,每一个协议实例进一步包括对应该协议实例的消息解析函数模块;其中,所述构件动态库中,
[0013]所述初始化函数模块用于提供对应协议的实例指针,并执行对应协议的网络传输的初始化操作;
[0014]所述网络初始化接口用于根据该协议实例指针调用所述初始化函数;
[0015]所述接收函数模块,用于在初始化时启动,并执行对应协议的所述网络传输的接收操作;
[0016]所述发送函数模块,用于执行对应协议的所述网络传输的发送操作;
[0017]所述消息解析函数模块,用于格式化数据。
[0018]所述构件动态库,每一个协议实例被按照INetTool类规定的接口进行封装。
[0019]所述至少一种协议的协议实例包括:TCP协议的协议实例、UDP协议的协议实例及自定义协议的协议实例。
[0020]所有协议的协议实例缓存在同一块内存中。
[0021]所述构件通过定义父类,各协议实例继承父类定义的接口实现网络传输。
[0022]网络传输系统,包括:发送端,接收端以及上述任一种网络传输服务构件,其中,
[0023]所述发送端,用于通过所述网络初始化接口调用所述构件动态库中的初始化函数模块,填充协议类型及初始化信息;通过所述数据发送接口调用所述构件动态库中的发送函数模块,填充接收方地址信息以及需要发送的内容信息;
[0024]所述接收端,用于通过所述网络初始化接口调用所述构件动态库中的初始化函数模块,填充协议类型及初始化信息;用于通过所述数据接收接口调用所述构件动态库中的接收函数模块,填充接收数据所需的内存信息。
[0025]所述发送函数模块,执行在短报文的数据发送失败时,使用套接字在设定时间内进行尝试重连,重连成功后将数据重新发送出去;在长报文的数据发送时,执行在第一次发送的报文块中增加了一个随机码作为报文标识,如果在传输过程中断线,则在重连后在断点处将该随机码重新加入到报文块中进行发送;
[0026]所述接收函数模块,执行当接收到报文块后,判断报文块的随机码是否与未接收完的长报文的随机码相同,如果相同,则表明该报文块为该长报文的后续部分,接收端将报文块进行重组,从而还原成一个完整的长报文。
[0027]本发明实施例提供了一种网络传输服务构件及网络传输系统,能够针对网络传输使用的协议预先定义在网络传输中需要使用的初始化函数模块、接收函数模块以及发送函数模块,及调用这些函数模块的接口。这样,当发送端和接收端需要通过某一种具体的协议收发数据时,发送端和接收端只需要通过相应的接口调用相应的函数,并给出针对当前数据发送的参数即可,而无需进行针对当前使用协议的完整的封装、解封装和对应协议的处理过程,比如,发送端无需执行针对当前使用协议的数据封装过程,而是由网络传输服务构件中预先定义的发送函数模块来执行,接收端无需执行针对当前使用协议的数据解封装过程,而是由网络传输服务构件中预先定义的接收函数模块来执行。因此,能够为用户提供统一的网络传输服务,无论各协议网接口是否不同,发送端和接收端的处理都很简单。另外,当系统需要迀移、网络协议需要更换时,也能够减少研发周期。
【附图说明】
[0028]图1是本发明一个实施例中网络传输服务构件的结构示意图。
[0029]图2是本发明一个实施例中协议类之间的依赖关系。
[0030]图3是本发明一个实施例中网络传输系统的结构示意图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]本发明一个实施例提出了一种网络传输服务构件,参见图1,包括:
[0033]构件动态库101,存储有网络传输使用的至少一种协议的协议实例,每一个协议实例被按照规定的接口进行封装,且每一个协议实例包括与该协议实例对应的初始化函数模块、接收函数模块以及发送函数模块;
[0034]网络初始化接口 102,提供用于调用所述构件动态库101中目标协议对应的初始化函数模块的接口;
[0035]数据发送接口 103,提供用于调用所述构件动态库101中目标协议对应的发送函数模块的接口;
[0036]数据接收接口 104,提供用于调用所述构件动态库101中目标协议对应的接收函数模块的接口;
[0037]外部协议加载接口 105,提供用于向所述构件动态库101中加载新增协议的实例的接口。
[0038]可见,本发明实施例提供的网络传输服务构件,能够针对网络传输使用的协议预先存储在网络传输中需要使用的初始化函数模块、接收函数模块以及发送函数模块,并提供调用这些函数模块的接口。这样,使用该网络传输服务构件,当发送端和接收端需要通过某一种具体的协议收发数据时,发送端和接收端只需要通过相应的接口调用相应的函数,并给出针对当前数据发送的参数即可,而无需进行针对当前使用协议的完整的封装、解封装和对应协议的处理过程,服务是由网络传输服务构件中预先定义的函数模块来执行。因此,能够为用户提供统一的网络传输服务。
[0039]在本发明的一个实施例中,构件动态库101中,每一个协议实例进一步包括对应该协议实例的消息解析函数模块;其中,所述构件动态库101中,
[0040]所述初始化函数模块,比如NetTool::1nit O函数,用于提供对应协议的实例指针,并执行对应协议的网络传输的初始化操作;
[0041]所述网络初始化接口 102用于根据该协议实例指针调用所述初始化函数;
[0042]所述接收函数模块,比如NetTool::RecvMsgO函数,用于在初始化时启动,并执行对应协议的所述网络传输的接收操作;
[0043]所述发送函数模块,比如NetTool:: SendMsg O函数,用于执行对应协议的所述网络传输的发送操作;
[0044]所述消息解析函数模块,用于格式化数据。
[0045]在本发明的一个实施例中,所述构件动态库101,每一个协议实例被按照INetTool类规定的接口进行封装。
[0046]在本发明的一个实施例中,可以预先在构件动态库101中存储已有的所有网络传输协议的协议实例,比如包括TCP协议的协议实例、UDP协议的协议实例。
[0047]在本发明的一个实施例中,还可以通过外部协议加载接口 105向构件动态库101中新增并存储自定义协议的协议实例。比如,用户自定义协议需要用户按照父类(比如INetTool类)定义的接口实现协议实例,自定义协议需要实现的接口及功能如下:
[0048](自定义协议类)Init():初始化自定义协议所需的网络环境;
[0049](自定义协议类)SendMsgO:实现自定义协议发送信息的过程;
[0050](自定义协议类)RecvO:接收线程函数,实现自定义协议下的接收过程,接收到完整报文后使用父类定义的INetTool: =MsgInQueueO函数将报文进行存储;
[0051]上述三个功能实现后,用户实例化一个自定义协
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1