[发明专利]一种基于边界保护的消息通信方法及装置有效
申请号: | 202010570711.8 | 申请日: | 2020-06-22 |
公开(公告)号: | CN111538607B | 公开(公告)日: | 2020-10-20 |
发明(设计)人: | 韩辉 | 申请(专利权)人: | 北京翼辉信息技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F21/62 |
代理公司: | 北京智乾知识产权代理事务所(普通合伙) 11552 | 代理人: | 邓大为 |
地址: | 100095 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 边界 保护 消息 通信 方法 装置 | ||
本发明提供了一种基于边界保护的消息通信方法及装置,所述方法包括:启动有边界虚拟消息设备,通过所述有边界虚拟消息设备在系统堆中申请一环形缓冲区;第一进程将第一消息数据写入所述环形缓冲区,写入成功后所述有边界虚拟消息设备释放读信号量;第二进程获取到读信号量后从所述环形缓冲区读出所述第一消息数据;其中,所述第一消息数据的头文件记录所述第一消息数据的数据长度,当所述数据长度超出缓冲区范围时,所述有边界虚拟消息设备将读指针或写指针重新指向环形缓冲区的首地址。通过环形缓冲区防止数据越界造成的数据泄露,且可以提前获取消息长度,还支持多路复用机制、超时机制及权限管理机制,提高了环形缓冲区的利用效率。
技术领域
本发明涉及人机交互技术领域,特别是一种用户交互方法及设备。
背景技术
随着计算机技术的发展,比如分布式计算等等,进程间通信(IPC)越来越重要,IPC是指两个或者两个以上的进程之间传递数据或信号的技术。目前,常见的进程间通信方式有:消息队列、共享内存、命名信号量、有名管道、无名管道等等。
以上常见的进程间通信方式存在各自的技术缺陷,使用不够灵活,没用数据越界保护,不能进行权限管理等等,因此无法保障消息数据的安全。例如:无名管道只能用于父子进程间通信,有名管道虽然可以完成没有血缘关系的进程通信,但是当读消息或者发送消息条件不满足时会一直等待,无法设置超时时间,另外由于有名管道长期存在于系统之中,使用不当容易出错。消息队列虽然可以使用超时时间,但是需要调用不同的API使用起来相对复杂。使用共享内存的方式通信无法保证数据的准确性,当多个进程使用同一块共享内存时会造成数据的混乱,即会存在数据访问时的地址越界,需要其他同步工具解决,导致程序设计更加复杂。
发明内容
本发明针对上述现有技术中的一个或多个缺陷,提出了如下技术方案。
一种基于边界保护的消息通信方法,所述方法包括:
初始化步骤,启动有边界虚拟消息设备,通过所述有边界虚拟消息设备在系统堆中申请一环形缓冲区;
写入步骤,第一进程将第一消息数据写入所述环形缓冲区,写入成功后所述有边界虚拟消息设备释放读信号量;
读出步骤,第二进程获取到读信号量后从所述环形缓冲区读出所述第一消息数据;
其中,所述第一消息数据的头文件记录所述第一消息数据的数据长度,当所述数据长度超出缓冲区范围时,所述有边界虚拟消息设备将读指针或写指针重新指向环形缓冲区的首地址。
更进一步地,所述写入步骤与所述读出步骤通过所述有边界虚拟消息设备进行读写同步,包括:当所述第一进程向所述环形缓冲区写入数据时,判断所述环形缓冲区是否初始化成功,如果是,继续判断所述环形缓冲区的大小是否大于或等于所述第一消息数据的长度得到第一判断结果,如果所述第一判断结果为是,所述第一进程将所述第一消息数据写入所述环形缓冲区,写入成功后所述有边界虚拟消息设备向所述第二进程释放读信号量,如果所述第一判断结果为否,所述有边界虚拟消息设备释放阻塞信号量,以阻止向所述环形缓冲区写入数据;所述第二进程获得所述读信号量后开始从所述环形缓冲区读出所述第一消息数据,在读出所述第一消息数据完成后,判断所述环形缓冲区中是否还有消息数据得到第二判断结果,如果所述第二判断结果为否,所述有边界虚拟消息设备释放阻塞信号量,以阻止从所述环形缓冲区读出数据,如果所述第二判断结果为是,所述有边界虚拟消息设备释放读出信号量,使得其他进程进行消息数据的读出,然后判断所述环形缓冲区是否还有空间剩余得到第三判断结果,如果所述第三判断结果为是,所述有边界虚拟消息设备释放写信号量,如果所述第三判断结果为否,所述有边界虚拟消息设备释放阻塞信号量,以阻止向所述环形缓冲区写入数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京翼辉信息技术有限公司,未经北京翼辉信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010570711.8/2.html,转载请声明来源钻瓜专利网。