[發明專利]數據傳輸方法及裝置有效
| 申請號: | 202110657449.5 | 申請日: | 2021-06-12 |
| 公開(公告)號: | CN113364790B | 公開(公告)日: | 2022-10-18 |
| 發明(設計)人: | 馬飛;楊培海 | 申請(專利權)人: | 四川虹美智能科技有限公司 |
| 主分類號: | H04L69/06 | 分類號: | H04L69/06;H04L69/22 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 李世喆 |
| 地址: | 621050 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據傳輸 方法 裝置 | ||
本說明書實施例提供一種數據傳輸方法及裝置,該方法包括:對接收到客戶端發送來的數據包時,對數據包進行解析,并將在數據包中解析出的數據包本體放入緩存隊列中;在緩存隊列中取出一個數據包本體,判斷數據包本體對應的客戶端IP地址字段中的客戶端IP地址是否為預設配置集中的客戶端IP地址,若是,則對數據包本體進行解析得到數據包本體中的數據流;確定是否已經解析出長度字段;若已經解析出長度字段,則判斷在相同客戶端IP地址的數據包本體中解析出的數據流的長度之和是否達到長度字段中待傳輸數據的總長度;若長度之和達到待傳輸數據的總長度,則接收完成。在發生拆包和粘包時,本申請可以更容易的解析出完整的數據流,減少數據解析的復雜度。
技術領域
本說明書一個或多個實施例涉及網絡通信技術領域,尤其涉及一種數據傳 輸方法及裝置。
背景技術
依據現有的TCP傳輸數據方式,對于無結構、無邊界、無長度的字節流數 據的解析比較復雜,經常會出現拆包粘包的問題。例如,數據包M1和數據包 M2正常發送的情況如圖1a所示,數據包M1和數據包M2發生粘包的情況如圖 1b所示,數據包M1發生拆包的情況如圖1c所示,數據包M2發生拆包的情況 如圖1d所示。在發生拆包粘包時常常發生不能解析出完整數據流的情況。所以 目前需要一種數據傳輸方案,即便發生了拆包粘包也能夠解析出完整的數據流。
發明內容
為了解決上述全部或者部分問題,本說明書一個或多個實施例描述了一 種數據傳輸方法及裝置。
根據第一方面,提供了一種數據傳輸方法,包括:
S100、對接收到客戶端發送來的數據包時,對所述數據包進行解析,并 將在所述數據包中解析出的數據包本體放入緩存隊列中;其中,客戶端按照 預設數據格式將待傳輸數據、待傳輸數據的總長度、名稱和數據類型生成一 個文件對象,所述文件對象中包含長度字段、名稱字段、類型字段和主體字 段,所述長度字段用于存儲所述待傳輸數據的總長度,所述名稱字段用于存 儲所述名稱,所述類型字段用于存儲所述數據類型,所述主體字段用于存儲 所述待傳輸數據;根據數據包長度限制將所述文件對象劃分為多個數據包本體,所有數據包本體的所有字段中的內容構成所述文件對象;在每一個數據 包本體中添加客戶端IP地址字段,將添加客戶端IP地址字段的各個數據包 本體依次經過數據鏈路層和物理層的包裝后得到數據包,并將各個數據包逐 個發送給服務端;
S200、在所述緩存隊列中取出一個數據包本體,判斷所述數據包本體對 應的所述客戶端IP地址字段中的客戶端IP地址是否為預設配置集中的客戶 端IP地址,若是,則執行S300;
S300、按照所述預設數據格式對所述數據包本體進行解析得到所述數據 包本體中包含的各個字段中的內容;
S400、根據當前已經解析的相同客戶端IP地址的數據包本體,確定是否 已經解析出長度字段;若已經解析出所述長度字段,則判斷在相同客戶端IP 地址的數據包本體中解析出的主體字段中的數據流的長度之和是否達到所述 長度字段中待傳輸數據的總長度;
S500、若所述長度之和達到所述待傳輸數據的總長度,則接收完成;
S600、若所述長度之和小于所述待傳輸數據的總長度,則在所述緩存隊 列中取出下一個相同客戶端IP地址的數據包本體,并返回S300。
根據第二方面,提供了一種數據傳輸裝置,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川虹美智能科技有限公司,未經四川虹美智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110657449.5/2.html,轉載請聲明來源鉆瓜專利網。





