[發明專利]一種基于邊界保護的消息通信方法及裝置有效
| 申請號: | 202010570711.8 | 申請日: | 2020-06-22 |
| 公開(公告)號: | CN111538607B | 公開(公告)日: | 2020-10-20 |
| 發明(設計)人: | 韓輝 | 申請(專利權)人: | 北京翼輝信息技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F21/62 |
| 代理公司: | 北京智乾知識產權代理事務所(普通合伙) 11552 | 代理人: | 鄧大為 |
| 地址: | 100095 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 邊界 保護 消息 通信 方法 裝置 | ||
本發明提供了一種基于邊界保護的消息通信方法及裝置,所述方法包括:啟動有邊界虛擬消息設備,通過所述有邊界虛擬消息設備在系統堆中申請一環形緩沖區;第一進程將第一消息數據寫入所述環形緩沖區,寫入成功后所述有邊界虛擬消息設備釋放讀信號量;第二進程獲取到讀信號量后從所述環形緩沖區讀出所述第一消息數據;其中,所述第一消息數據的頭文件記錄所述第一消息數據的數據長度,當所述數據長度超出緩沖區范圍時,所述有邊界虛擬消息設備將讀指針或寫指針重新指向環形緩沖區的首地址。通過環形緩沖區防止數據越界造成的數據泄露,且可以提前獲取消息長度,還支持多路復用機制、超時機制及權限管理機制,提高了環形緩沖區的利用效率。
技術領域
本發明涉及人機交互技術領域,特別是一種用戶交互方法及設備。
背景技術
隨著計算機技術的發展,比如分布式計算等等,進程間通信(IPC)越來越重要,IPC是指兩個或者兩個以上的進程之間傳遞數據或信號的技術。目前,常見的進程間通信方式有:消息隊列、共享內存、命名信號量、有名管道、無名管道等等。
以上常見的進程間通信方式存在各自的技術缺陷,使用不夠靈活,沒用數據越界保護,不能進行權限管理等等,因此無法保障消息數據的安全。例如:無名管道只能用于父子進程間通信,有名管道雖然可以完成沒有血緣關系的進程通信,但是當讀消息或者發送消息條件不滿足時會一直等待,無法設置超時時間,另外由于有名管道長期存在于系統之中,使用不當容易出錯。消息隊列雖然可以使用超時時間,但是需要調用不同的API使用起來相對復雜。使用共享內存的方式通信無法保證數據的準確性,當多個進程使用同一塊共享內存時會造成數據的混亂,即會存在數據訪問時的地址越界,需要其他同步工具解決,導致程序設計更加復雜。
發明內容
本發明針對上述現有技術中的一個或多個缺陷,提出了如下技術方案。
一種基于邊界保護的消息通信方法,所述方法包括:
初始化步驟,啟動有邊界虛擬消息設備,通過所述有邊界虛擬消息設備在系統堆中申請一環形緩沖區;
寫入步驟,第一進程將第一消息數據寫入所述環形緩沖區,寫入成功后所述有邊界虛擬消息設備釋放讀信號量;
讀出步驟,第二進程獲取到讀信號量后從所述環形緩沖區讀出所述第一消息數據;
其中,所述第一消息數據的頭文件記錄所述第一消息數據的數據長度,當所述數據長度超出緩沖區范圍時,所述有邊界虛擬消息設備將讀指針或寫指針重新指向環形緩沖區的首地址。
更進一步地,所述寫入步驟與所述讀出步驟通過所述有邊界虛擬消息設備進行讀寫同步,包括:當所述第一進程向所述環形緩沖區寫入數據時,判斷所述環形緩沖區是否初始化成功,如果是,繼續判斷所述環形緩沖區的大小是否大于或等于所述第一消息數據的長度得到第一判斷結果,如果所述第一判斷結果為是,所述第一進程將所述第一消息數據寫入所述環形緩沖區,寫入成功后所述有邊界虛擬消息設備向所述第二進程釋放讀信號量,如果所述第一判斷結果為否,所述有邊界虛擬消息設備釋放阻塞信號量,以阻止向所述環形緩沖區寫入數據;所述第二進程獲得所述讀信號量后開始從所述環形緩沖區讀出所述第一消息數據,在讀出所述第一消息數據完成后,判斷所述環形緩沖區中是否還有消息數據得到第二判斷結果,如果所述第二判斷結果為否,所述有邊界虛擬消息設備釋放阻塞信號量,以阻止從所述環形緩沖區讀出數據,如果所述第二判斷結果為是,所述有邊界虛擬消息設備釋放讀出信號量,使得其他進程進行消息數據的讀出,然后判斷所述環形緩沖區是否還有空間剩余得到第三判斷結果,如果所述第三判斷結果為是,所述有邊界虛擬消息設備釋放寫信號量,如果所述第三判斷結果為否,所述有邊界虛擬消息設備釋放阻塞信號量,以阻止向所述環形緩沖區寫入數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京翼輝信息技術有限公司,未經北京翼輝信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010570711.8/2.html,轉載請聲明來源鉆瓜專利網。





