[發(fā)明專利]一種數(shù)據(jù)包傳輸處理方法及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201110433104.8 | 申請(qǐng)日: | 2011-12-22 |
| 公開(公告)號(hào): | CN102447628A | 公開(公告)日: | 2012-05-09 |
| 發(fā)明(設(shè)計(jì))人: | 胡加明 | 申請(qǐng)(專利權(quán))人: | 蘇州闊地網(wǎng)絡(luò)科技有限公司 |
| 主分類號(hào): | H04L12/56 | 分類號(hào): | H04L12/56 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 215121 江蘇省蘇州市蘇州*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)包 傳輸 處理 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)傳輸領(lǐng)域,尤其涉及一種數(shù)據(jù)包傳輸處理方法及系統(tǒng)。
背景技術(shù)
目前,基于TCP網(wǎng)絡(luò)傳輸?shù)膽?yīng)用程序會(huì)出現(xiàn)粘包現(xiàn)象,即發(fā)送方發(fā)送的若干數(shù)據(jù)到接收方接收時(shí)粘成一包。對(duì)于這種粘包現(xiàn)象,通信服務(wù)器必須將粘在一起的包分開,然后進(jìn)行業(yè)務(wù)邏輯處理。由于通信服務(wù)器每接收到一個(gè)數(shù)據(jù)包都要進(jìn)行分包處理,因此,分包處理的效率成為制約整個(gè)通信服務(wù)器效率的關(guān)鍵因素之一。如果分包效率慢,不僅極大降低通信服務(wù)器處理消息的效率,還會(huì)導(dǎo)致內(nèi)存中積壓大量沒有處理的數(shù)據(jù)包,造成通信服務(wù)器崩潰。另外,數(shù)據(jù)包解析之后的業(yè)務(wù)邏輯的處理也很大程度上影響通信服務(wù)器的效率。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)包傳輸處理方法及系統(tǒng),以解決上述問題。
本發(fā)明提供一種數(shù)據(jù)包傳輸處理方法。上述方法包括以下步驟:Socket線程接收待處理數(shù)據(jù)包;預(yù)處理線程拼接從緩沖區(qū)讀取的不完整數(shù)據(jù)包以及Socket線程接收的待處理數(shù)據(jù)包,通過正則表達(dá)式掃描拼接數(shù)據(jù)包以判斷拼接數(shù)據(jù)包是否匹配特定數(shù)據(jù)結(jié)構(gòu),若拼接數(shù)據(jù)包匹配特定數(shù)據(jù)結(jié)構(gòu),則將匹配的完整數(shù)據(jù)包放入接收隊(duì)列;執(zhí)行裝置從接收隊(duì)列中調(diào)度完整數(shù)據(jù)包,并根據(jù)完整數(shù)據(jù)包的業(yè)務(wù)類型調(diào)用相應(yīng)的線程進(jìn)行處理,其中,業(yè)務(wù)類型具有優(yōu)先等級(jí),不同的業(yè)務(wù)類型由不同的線程對(duì)應(yīng)處理。
本發(fā)明還提供一種數(shù)據(jù)包傳輸處理系統(tǒng),包括接收裝置、預(yù)處理裝置以及執(zhí)行裝置。接收裝置連接預(yù)處理裝置,預(yù)處理裝置連接執(zhí)行裝置。其中,接收裝置用于接收待處理數(shù)據(jù)包。預(yù)處理裝置用于拼接從緩沖區(qū)讀取的不完整數(shù)據(jù)包以及接收裝置接收的待處理數(shù)據(jù)包,通過正則表達(dá)式掃描拼接數(shù)據(jù)包以判斷拼接數(shù)據(jù)包是否匹配特定數(shù)據(jù)結(jié)構(gòu),若拼接數(shù)據(jù)包匹配特定數(shù)據(jù)結(jié)構(gòu),則將匹配的完整數(shù)據(jù)包放入接收隊(duì)列。執(zhí)行裝置用于從接收隊(duì)列中調(diào)度完整數(shù)據(jù)包,并根據(jù)完整數(shù)據(jù)包的業(yè)務(wù)類型調(diào)用相應(yīng)的線程進(jìn)行處理。其中,業(yè)務(wù)類型具有優(yōu)先等級(jí),不同的業(yè)務(wù)類型由不同的線程對(duì)應(yīng)處理。
相較于先前技術(shù),根據(jù)本發(fā)明提供的數(shù)據(jù)包傳輸處理方法及系統(tǒng),預(yù)處理線程拼接從緩沖區(qū)讀取的不完整數(shù)據(jù)包以及Socket線程接收的待處理數(shù)據(jù)包,通過正則表達(dá)式掃描拼接數(shù)據(jù)包以判斷拼接數(shù)據(jù)包是否匹配特定數(shù)據(jù)結(jié)構(gòu),并將匹配得到的完整數(shù)據(jù)包放入接收隊(duì)列中。如此,提高了分包效率,防止內(nèi)存中積壓大量數(shù)據(jù)包導(dǎo)致通信服務(wù)器崩潰。另外,執(zhí)行裝置從接收隊(duì)列中調(diào)度完整數(shù)據(jù)包,并根據(jù)完整數(shù)據(jù)包的業(yè)務(wù)類型調(diào)用相應(yīng)的線程進(jìn)行處理。如此,提高了業(yè)務(wù)的處理效率。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)包傳輸處理方法的流程圖;
圖2所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)包傳輸處理裝置的示意圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)包傳輸處理方法的流程圖。如圖1所示,本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)包傳輸處理方法包括步驟101~103。
于步驟101,Socket線程接收待處理數(shù)據(jù)包。具體而言,Socket線程接收用戶發(fā)送的待處理數(shù)據(jù)包后,從線程池中取出預(yù)處理線程執(zhí)行后續(xù)步驟,而Socket線程立即返回繼續(xù)執(zhí)行下一個(gè)待處理數(shù)據(jù)包的接收任務(wù)。如此,提高了Socket線程的接收效率。
于步驟102,預(yù)處理線程拼接從緩沖區(qū)讀取的不完整數(shù)據(jù)包以及Socket線程接收的待處理數(shù)據(jù)包,通過正則表達(dá)式掃描所述拼接數(shù)據(jù)包以判斷所述拼接數(shù)據(jù)包是否匹配特定數(shù)據(jù)結(jié)構(gòu),若所述拼接數(shù)據(jù)包匹配特定數(shù)據(jù)結(jié)構(gòu),則將匹配的完整數(shù)據(jù)包放入接收隊(duì)列。
于本實(shí)施例中,完整的數(shù)據(jù)包具有特定數(shù)據(jù)結(jié)構(gòu),上述特定數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)頭、數(shù)據(jù)內(nèi)容以及數(shù)據(jù)尾。舉例而言,特定數(shù)據(jù)結(jié)構(gòu)以“<root”開頭,以“/>”結(jié)尾,中間為任意不定長字符,如:<root?type=’text’from=’1’to=’2’say=’hello’/>。然而,本發(fā)明并不限定于此。于實(shí)際應(yīng)用中,任何以相應(yīng)固定字符開始和結(jié)尾的數(shù)據(jù)結(jié)構(gòu)均可定義為特定數(shù)據(jù)結(jié)構(gòu)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于蘇州闊地網(wǎng)絡(luò)科技有限公司,未經(jīng)蘇州闊地網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110433104.8/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 通過冗余提高數(shù)據(jù)傳輸速度的方法
- 數(shù)據(jù)包調(diào)度方法和裝置
- 一種數(shù)據(jù)包的轉(zhuǎn)發(fā)方法和設(shè)備
- 網(wǎng)絡(luò)通信主體確認(rèn)方法及系統(tǒng)
- 一種轉(zhuǎn)發(fā)數(shù)據(jù)包的方法、裝置和路由設(shè)備
- 一種數(shù)據(jù)報(bào)文接收方法及裝置
- 一種降低語音丟包統(tǒng)計(jì)量的方法及基站
- 數(shù)據(jù)包的處理方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)包處理方法、裝置及電子設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)傳輸方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





