[發明專利]一種處理傳輸控制協議粘包方法及裝置在審
| 申請號: | 201410664108.0 | 申請日: | 2014-11-20 |
| 公開(公告)號: | CN104410613A | 公開(公告)日: | 2015-03-11 |
| 發明(設計)人: | 嚴毅;鄧煥根;龍鄒 | 申請(專利權)人: | 廣西大學 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 530004 廣西*** | 國省代碼: | 廣西;45 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 處理 傳輸 控制 協議 方法 裝置 | ||
1.一種處理傳輸控制協議粘包方法,其特征在于,包括:
接收TCP消息,所述TCP消息包括消息頭和消息體,所述消息體用于攜帶數據,所述消息頭用于記錄一條完整數據的數據長度;
從所述TCP消息中獲取消息頭,并讀取所述消息頭記錄的數據長度;
根據所述數據長度從接收緩沖區中提取完整數據。
2.根據權利要求1所述的方法,其特征在于,根據所述數據長度從接收緩沖區中提取完整數據包括:
在當前待處理數據流長度等于所述數據長度的情況下,根據所述數據長度從接收緩沖區中提取完整數據,返回執行接收TCP消息,以接收下一個TCP消息;
在當前待處理數據流長度大于所述數據長度的情況下,根據所述數據長度從接收緩沖區中提取完整數據,并且將提取完整數據后接收緩沖區中剩余的待處理數據流長度作為當前待處理數據流長度;
在該當前待處理數據流長度不小于預設消息頭長度的情況下,執行從所述TCP消息中獲取消息頭,并讀取消息頭記錄的數據長度,該TCP消息為接收緩沖區中當前待處理數據流所包括的TCP消息;
在該當前待處理數據流長度小于預設消息頭長度的情況下,返回執行接收TCP消息,以接收下一個TCP消息。
3.根據權利要求2所述的方法,其特征在于,還包括:在當前待處理數據流長度小于所述數據長度的情況下,則返回執行接收TCP消息,以接收下一個TCP消息。
4.根據權利要求3所述的方法,其特征在于,在比較結果為當前待處理數據流長度小于所述數據長度時,接收到下一個TCP消息之后還包括:
將所述下一個TCP消息合并到所述接收緩沖區中當前待處理數據流中,并將接收緩沖區中合并后的待處理數據流長度為當前待處理數據流長度,執行比較所述數據長度和接收緩沖區中當前待處理數據流長度,其中,該下一個TCP消息為攜帶有上一個TCP消息未傳完的剩余數據的TCP消息,該數據長度為上一個TCP消息的消息頭記錄的數據長度;
或者,將所述下一個TCP消息合并到所述接收緩沖區中當前待處理數據流中,并將接收緩沖區中合并后的待處理數據流長度為當前待處理數據流長度,執行比較所述數據長度和接收緩沖區中當前待處理數據流長度,其中,該下一個TCP消息包括消息頭和消息體,該消息頭用于記錄該下一個TCP消息所對應的完整數據的數據長度,該消息體用于攜帶上一個TCP消息未傳完的剩余數據和該下一個TCP消息對應的數據,該數據長度為上一個TCP消息的消息頭記錄的數據長度。
5.根據權利要求2所述的方法,其特征在于,所述消息頭還用于記錄消息編號,所述消息編號按照TCP客戶端對TCP消息進行消息頭添加處理的順序獲得;
比較所述數據長度和接收緩沖區中當前待處理數據流長度包括按照所述消息頭編號依次比較所述數據消息長度和接收緩沖區中當前待處理數據流長度。
6.一種處理傳輸控制協議粘包裝置,其特征在于,包括:
接收單元,用于接收TCP消息,所述TCP消息包括消息頭和消息體,所述消息體用于攜帶數據,所述消息頭用于記錄一條完整數據的數據長度;
獲取單元,用于從接收單元接收的TCP消息中獲取消息頭,并讀取所述消息頭記錄的數據長度;
提取單元,用于根據所述獲取單元讀取的消息頭記錄的數據長度從接收緩沖區中提取完整數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣西大學,未經廣西大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410664108.0/1.html,轉載請聲明來源鉆瓜專利網。





