欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019109115465
申请人: 北京简约纳电子有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-07-29
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种同时支持socket同步和异步通信方式的方法,其特征在于:包括了socket API,应用层Task、接收Task和发送Task;

当外部需要应用层Task开始建立连接时,就会发一个对应的事件(Event)给应用层Task,应用层Task就会调用API socket()来创建一个socket,如果是异步方式,就会在创建socket成功之后,注册socket callback 函数fun1,并与该socket进行绑定,如果是同步方式,则无此步骤,这是后续区分同步和异步方式的标志;

创建完socket之后,应用层Task根据实际需求调用相关的socket API来进行处理,如果是与发送数据相关的API,则需要发送信号量给发送Task,告诉发送Task有数据要发送,如果是与接收数据相关的Task,则无此步骤,在调用这些socket API的时候,如果是异步方式,可以直接返回,如果是同步方式,需要等待接收Task或者是发送Task处理完成相关的流程之后发送过来的信号量,才可以继续往下执行并返回;

当驱动程序接收到数据之后,会通知接收Task,接收Task开始对数据包进行处理,处理完成之后,如果是异步方式,就调用在创建socket时注册的callback 函数fun1,进行相应的业务处理,之后发送事件(Event)给应用层Task,通知应用层Task数据接收的结果,如果是同步方式,就发送应用层Task正在等待的信号量给应用层Task,应用层Task接收到这个信号量之后就继续往下执行;

由于应用层Task在调用与发送数据相关的API时,会发送信号量给发送Task,发送Task接收到这个信号量之后,会根据各个连接(connection)的状态,发送数据包,等发送完成之后,会根据是同步还是异步方式进行相应的处理,如果是异步方式,就调用在创建socket时注册的callback 函数fun1,进行相应的业务处理,之后发送事件(Event)给应用层Task,通知应用层Task数据发送的结果,如果是同步方式,就发送应用层Task正在等待的信号量给应用层Task,应用层Task接收到这个信号量之后就继续往下执行。

2.根据权利要求1所述的一种同时支持socket同步和异步通信方式的方法,其特征在于:所述接收Task只处理与接收数据相关业务,发送Task只处理与发送数据相关业务,而且发送Task和接收Task都是基于消息或者是事件驱动的。

3.根据权利要求1所述的一种同时支持socket同步和异步通信方式的方法,其特征在于:所述如果是异步方式,则调用socket API时不需要等待就直接返回了,如果是同步方式,对于大部分的socket API,则需要等待接收Task或者是发送Task处理完相关的流程之后发来的信号量,才可以继续往下执行并返回,有少数不需要与服务器端交互的API则不需要等待,直接返回。

4.根据权利要求1所述的一种同时支持socket同步和异步通信方式的方法,其特征在于:所述的socket API仍然是标准的外部接口,没有改动,修改的是socket API的内部实现。