[發明專利]一種數據發送方法、接收方法及裝置有效
| 申請號: | 201810728010.5 | 申請日: | 2018-07-05 |
| 公開(公告)號: | CN109062708B | 公開(公告)日: | 2020-07-10 |
| 發明(設計)人: | 楊亮;張文明;陳少杰 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 發送 方法 接收 裝置 | ||
本發明公開一種數據發送方法、接收方法以及裝置,該數據發送方法包括:在基于FiFo命名管道進行全雙工通信的過程中,當使用遠程命名管道發送數據時,調用FiFo消息的靜態分配方法創建FiFo消息數據結構;在所述FiFo消息的規模不大于第一預置數值的條件下,使用所述FiFo消息包裝數據塊;根據所述FiFo消息的FiFo消息數據結構判斷所述數據塊是否已被全部包裝完畢;若是,將所述FiFo消息的分段標識設置為0,并調用寫方法將用于包裝所述數據塊的全部FiFo消息寫入所述遠程命名管道;若否,將所述分段標識設置為1,并將剩余的所述數據塊寫入所述后續FiFo消息。可以在發送數據時,對太大的數據進行分段處理,從而減少丟包的問題。
技術領域
本發明涉及通信領域,尤其涉及一種數據發送方法、接收方法及裝置。
背景技術
在Linux系統中,當利用先入先出隊列(first in first out,FiFo)命名管道進行進程間的通信時,服務端和客戶端均通過本地命名管道接收數據,通過遠程命名管道發送數據,從而實現基于FiFo命名管道進行全雙工通信。
在上述基于FiFo命名管道進行全雙工通信的過程中,理想狀態是,發送端發送一個FiFo消息,接收端接收一個FiFo消息,發送的FiFo消息的數量等于接收的FiFo消息的數量。然而,當發送端發送的數據太大時,由于接收端受到最大讀取數值的限制,導致接收端無法一次讀取到一個完整的FiFo消息,而當發送端發送的數據太小時,又可能導致接收端一次讀取到多個FiFo消息。
無論發送端發送的數據太大還是太小,均容易使接收端在處理接收到的數據時,出現遺漏處理等情況,從而導致丟包,即發送端發送的FiFo消息的數量大于接收端接收到的FiFo消息的數量。
發明內容
本發明提供一種數據發送方法、接收方法及裝置,可以在發送數據時,對太大的數據進行分段處理,在接收數據時,將所有接收到的數據保存到序列化容器中再進行處理,只有處理完的數據才從序列化容器中移除,確保不遺漏處理已接收到的數據,從而解決現有技術在基于FiFo命名管道進行全雙工通信的過程中,容易存在的丟包問題。
第一方面,本發明實施例提供了一種數據發送方法,所述方法包括:
在基于FiFo命名管道進行全雙工通信的過程中,當使用遠程命名管道發送數據時,調用FiFo消息的靜態分配方法創建FiFo消息數據結構;
在所述FiFo消息的規模不大于第一預置數值的條件下,使用所述FiFo消息包裝數據塊,所述數據塊中被所述FiFo消息包裝的數據塊稱為有效負載,所述有效負載的規模小于或等于所述數據塊的規模;
根據所述FiFo消息的FiFo消息數據結構判斷所述數據塊是否已被全部包裝完畢;
若所述數據塊已被全部包裝完畢,將所述FiFo消息的分段標識設置為0,表示所述FiFo消息為包裝所述數據塊的最后一個FiFo消息,并調用寫方法將用于包裝所述數據塊的全部FiFo消息寫入所述遠程命名管道,以使得接收端從本地命名管道獲取數據后,對獲取的所述數據進行處理后得到所述數據塊;
若所述數據塊未被全部包裝完畢,將所述分段標識設置為1,表示所述FiFo消息之后還有用于包裝所述數據塊的后續FiFo消息,并將剩余的所述數據塊寫入所述后續FiFo消息。
可選的,所述根據所述FiFo消息數據結構判斷所述數據塊是否已被全部包裝完畢,包括:
將所述數據塊的規模減去偏移量的差值設置為所述FiFo消息數據結構的參數,所述偏移量表示在使用所述FiFo消息包裝所述數據塊之前,所述數據塊已被包裝在先前FiFo消息的總規模,所述偏移量的初始值為0;
判斷所述有效負載的規模是否等于所述差值;
若所述FiFo消息的有效負載的規模等于所述差值,確定所述數據塊已被全部包裝完畢;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810728010.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





