[发明专利]一种针对SystemV消息队列的I/O复用方法有效
申请号: | 201410266122.5 | 申请日: | 2014-06-13 |
公开(公告)号: | CN104021196B | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 段锴;王海 | 申请(专利权)人: | 中国民航信息网络股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京瑞思知识产权代理事务所(普通合伙)11341 | 代理人: | 李涛,袁红红 |
地址: | 100010 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及网络通信领域,提供了一种针对System V消息队列的I/O复用方法,包括以下步骤步骤1,启动WSH进程,创建有名管道FIFO和消息队列Q_OUT;步骤2,WSH进程以非阻塞的只读方式打开有名管道FIFO,获取FIFO的描述符标识;步骤3,WSH进程将FIFO的描述符标识放入可读描述字集合,并调用select系统调用对网络socket和FIFO描述符同时进行I/O复用。本发明的复用方法利用了有名管道技术FIFO的描述符标识与Socket的描述符类似,可以被select调用和支持,通过为WSH进程添加FIFO组件,从而借助FIFO达到了对System V消息队列I/O复用的目的。 | ||
搜索关键词: | 一种 针对 system 消息 队列 方法 | ||
【主权项】:
一种针对System V消息队列的I/O复用方法,其特征在于,包括以下步骤:步骤1,启动WSH进程,创建有名管道FIFO和消息队列Q_OUT;步骤2,WSH进程以非阻塞的只读方式打开有名管道FIFO,获取FIFO的描述符标识;步骤3,WSH进程将FIFO的描述符标识放入可读描述字集合,并调用select调用,对网络socket和FIFO描述符同时进行I/O复用;步骤4,航班查询进程调用封装好的API,实现将应答报文放入Q_OUT队列,同时打开并将事件报文放入有名管道;步骤5,WSH进程被select调用触发,读取有名管道的事件和消息队列Q_OUT中的应答报文;步骤5进一步包括以下步骤:a)首先WSH进程判断上次从消息队列Q_OUT取到的应答个数是否超过阈值,如果超过,select调用不设置超时;如果没超过,则select调用设置超时;b)基于步骤a)中的超时设置进行select调用;c)select调用返回后,判断有名管道是否有事件,如果有则执行步骤d),没有则执行步骤e);d)调用read方法读取有名管道事件,如果没读到事件则执行步骤g);如果读到事件,则继续调用msgrcv方法读取Q_OUT队列数据;如果调用msgrcv方法没读到Q_OUT队列数据,继续从步骤d)重新开始,如果读到Q_OUT队列数据执行步骤f);e)如果有名管道没有事件或者select调用超时,则调用msgrcv方法读取Q_OUT队列数据,如果没读到Q_OUT队列数据执行步骤g),如果读到Q_OUT队列数据则调用read方法读取有名管道事件,继续执行步骤f);f)将计数器Rcv_Qout_Num加1,并将数据发送客户端,然后判断Rcv_Qout_Num是否大于阈值,如果大于阈值,继续执行步骤g),如果不大于阈值则继续从步骤c)重新开始;g)基于select调用的返回,读取客户端从网络socket发送来的请求数据;其中,WSH进程是指负责服务端与客户端之间的网络通信的进程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航信息网络股份有限公司,未经中国民航信息网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410266122.5/,转载请声明来源钻瓜专利网。
- 上一篇:基于零件特征的数控机床加工能力评定方法
- 下一篇:一种复合网版的热压装置