[发明专利]一种针对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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top