[发明专利]一种基于协程机制的通讯方法有效
| 申请号: | 201610082073.9 | 申请日: | 2016-02-05 |
| 公开(公告)号: | CN105760237B | 公开(公告)日: | 2019-03-22 |
| 发明(设计)人: | 王乾;马红兵 | 申请(专利权)人: | 南京贝伦思网络科技股份有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 戴朝荣 |
| 地址: | 210017 江苏省南京市建*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 机制 通讯 方法 | ||
1.一种基于协程机制的通讯方法,其特征在于,包括如下步骤:
a、在主线程循环过程中,监听socket;
b、判断所述socket是否有输入数据,如果有,则执行步骤c;
c、对所述输入数据进行解码分析,并判断所述输入数据是请求数据或回应数据,如果是请求数据,则执行步骤d,如果是回应数据,则执行步骤e;
d、创建协程函数,并利用所述协程函数对所述请求数据进行处理;
e、根据所述回应数据查找与所述回应数据相对应的协程函数,并切换到所述协程函数处理所述回应数据;
每一所述协程函数对应一个用于设定所述协程函数的生命周期的定时器,且每一所述定时器中携带有用于定位相对应的所述协程函数的消息ID。
2.根据权利要求1所述的基于协程机制的通讯方法,其特征在于:在步骤a中,采用select机制或者epoll机制来监听所述socket。
3.根据权利要求1所述的基于协程机制的通讯方法,其特征在于:如果所述socket没有输入数据,则在步骤b中还包括执行超时消息处理步骤。
4.根据权利要求3所述的基于协程机制的通讯方法,其特征在于:所述超时消息处理包括如下步骤:
根据定时器事件到达的定时器所携带的消息ID定位超时的协程函数;
切换到所述超时的协程函数进行超时消息处理;
所述超时消息处理完成后,则切换到所述主线程继续循环,并返回步骤a。
5.根据权利要求1所述的基于协程机制的通讯方法,其特征在于:在步骤d中,如果在所述请求数据的处理过程中需要发送处理数据,则所述步骤d还包括如下步骤:
发送处理数据,保存所述协程函数,并建立携带有定位所述协程函数的消息ID的定时器;
切换到所述主线程继续循环,并返回步骤a。
6.根据权利要求1所述的基于协程机制的通讯方法,其特征在于:在步骤e中包括如下步骤:
根据所述回应数据中携带的消息ID在缓存中查找与所述回应数据相对应的协程函数;
关闭与查找到的协程函数相对应的定时器,并切换到所述查找到的协程函数处理所述回应数据;
所述回应数据处理完成,则切换到所述主线程继续循环,并返回步骤a。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京贝伦思网络科技股份有限公司,未经南京贝伦思网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610082073.9/1.html,转载请声明来源钻瓜专利网。





