[發(fā)明專利]處理異步消息隊列的方法、系統(tǒng)和異步SOCKET無效
| 申請?zhí)枺?/td> | 200710079396.3 | 申請日: | 2007-02-16 |
| 公開(公告)號: | CN101247319A | 公開(公告)日: | 2008-08-20 |
| 發(fā)明(設(shè)計)人: | 陳霞;倪輝;肖颯;莊順萬 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | H04L12/56 | 分類號: | H04L12/56;H04L29/06 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 | 代理人: | 逯長明 |
| 地址: | 518129廣東省*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 處理 異步 消息 隊列 方法 系統(tǒng) socket | ||
1.?一種處理異步消息隊列的方法,其特征在于,包括步驟:
A、異步SOCKET將接收到的底層數(shù)據(jù)放入接收緩存,判斷異步消息隊列中是否有未讀取的異步讀消息,如果異步消息隊列中沒有未讀取的異步讀消息,則向所述異步消息隊列中寫入一異步讀消息,執(zhí)行步驟B,如果異步消息隊列中有未讀取的異步讀消息,則執(zhí)行步驟B;
B、上層協(xié)議讀取異步消息隊列中的異步讀消息后,從異步SOCKET接收緩存中讀取底層數(shù)據(jù)。
2.?根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷異步消息隊列中是否有未讀取的異步讀消息的方法為:判斷一合并標(biāo)志計數(shù)器的計數(shù)是否為一預(yù)設(shè)值,若為所述預(yù)設(shè)值則異步消息隊列中沒有未讀取的異步讀消息;否則,異步消息隊列中有未讀取的異步讀消息;
判斷異步消息隊列中是否有未讀取的異步讀消息之后將所述合并標(biāo)志計數(shù)器的計數(shù)值加一或減一。
3.?根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B中上層協(xié)議讀取異步SOCKET接收緩存中的底層數(shù)據(jù)后所述合并標(biāo)志計數(shù)器將其計數(shù)重置為所述預(yù)設(shè)值。
4.?根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B包括:
上層協(xié)議設(shè)置一個內(nèi)存空間申請緩存;
上層協(xié)議讀取所述異步讀消息后,根據(jù)上層協(xié)議數(shù)據(jù)緩存的長度從異步SOCKET接收緩存中讀取一次底層數(shù)據(jù);
上層協(xié)議根據(jù)所述異步SOCKET接收緩存中剩余數(shù)據(jù)長度,向所述內(nèi)存空間申請緩存申請一段與所述剩余數(shù)據(jù)長度相等的擴(kuò)展數(shù)據(jù)緩存;
上層協(xié)議應(yīng)用所述擴(kuò)展數(shù)據(jù)緩存讀盡所述異步SOCKET接收緩存中的剩余底層數(shù)據(jù)。
5.?根據(jù)權(quán)利要求1所述的方法,其特征在于,若所述步驟B中上層協(xié)議不能一次讀盡異步SOCKET接收緩存中的底層數(shù)據(jù),所述方法還包括:
C、異步SOCKET向所述異步消息隊列中自激性寫入一異步讀消息;
D、返回步驟B,直至上層協(xié)議將所述異步SOCKET接收緩存中的底層數(shù)據(jù)讀盡。
6.?根據(jù)權(quán)利要求5所述的方法,其特征在于,所述上層協(xié)議為數(shù)據(jù)流協(xié)議,所述步驟C包括:
上層協(xié)議讀取異步SOCKET接收緩存中的底層數(shù)據(jù)后,該異步SOCKET判斷接收緩存中的底層數(shù)據(jù)是否被讀盡;若是,
則所述異步SOCKET向異步消息隊列中寫入一異步讀消息;否則,結(jié)束異步讀消息的上報。
7.?根據(jù)權(quán)利要求5所述的方法,其特征在于,所述上層協(xié)議為數(shù)據(jù)報協(xié)議,所述步驟C包括:
上層協(xié)議讀取異步SOCKET接收緩存中的底層數(shù)據(jù)后,該異步SOCKET記錄準(zhǔn)備向異步消息隊列中寫入的異步讀消息;
當(dāng)所述異步SOCKET在預(yù)制時間內(nèi)沒有接收到新的底層數(shù)據(jù)時,該異步SOCKET向異步消息隊列中寫入所述記錄的異步讀消息。
8.?一種處理異步消息隊列的系統(tǒng),所述系統(tǒng)包括:底層數(shù)據(jù)模塊、上層協(xié)議模塊以及連接底層數(shù)據(jù)模塊和上層協(xié)議模塊的異步SOCKET模塊,其特征在于,
所述異步SOCKET模塊包括:
接收緩存模塊,接收并存放所述底層數(shù)據(jù)模塊發(fā)送的數(shù)據(jù);
判斷異步讀消息模塊,用于判斷異步消息隊列中是否有未讀取的異步讀消息;
寫異步讀消息模塊,用于當(dāng)異步消息隊列中沒有未讀取的異步讀消息時,向所述異步消息隊列中寫入一異步讀消息;
所述上層協(xié)議模塊包括:
讀異步讀消息模塊,用于讀取所述異步消息隊列中寫入的異步讀消息;
讀取數(shù)據(jù)模塊,用于從所述接收緩存模塊中讀取底層數(shù)據(jù)。
9.?根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述判斷異步讀消息模塊包括:
設(shè)置計數(shù)器模塊,用于在異步SOCKET中設(shè)置合并標(biāo)志計數(shù)器;
判斷計數(shù)器模塊,通過所述合并標(biāo)志計數(shù)器的計數(shù)判斷異步消息隊列中是否有未讀取的異步讀消息;
操作計數(shù)器模塊,用于將所述合并標(biāo)志計數(shù)器的計數(shù)值加一或減一;
重置計數(shù)器模塊,用于當(dāng)讀取數(shù)據(jù)模塊從接收緩存中讀取數(shù)據(jù)后,將所述合并標(biāo)志計數(shù)器重置為預(yù)設(shè)值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710079396.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





