CN114003413A - 一种ipc数据通信方法、装置、设备及介质 - Google Patents

一种ipc数据通信方法、装置、设备及介质 Download PDF

Info

Publication number
CN114003413A
CN114003413A CN202111637570.8A CN202111637570A CN114003413A CN 114003413 A CN114003413 A CN 114003413A CN 202111637570 A CN202111637570 A CN 202111637570A CN 114003413 A CN114003413 A CN 114003413A
Authority
CN
China
Prior art keywords
data
shared memory
array
communication
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111637570.8A
Other languages
English (en)
Other versions
CN114003413B (zh
Inventor
王阳开
刘国清
杨广
王启程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Youjia Innovation Technology Co.,Ltd.
Original Assignee
Shenzhen Minieye Innovation Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Minieye Innovation Technology Co Ltd filed Critical Shenzhen Minieye Innovation Technology Co Ltd
Priority to CN202111637570.8A priority Critical patent/CN114003413B/zh
Publication of CN114003413A publication Critical patent/CN114003413A/zh
Application granted granted Critical
Publication of CN114003413B publication Critical patent/CN114003413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种IPC数据通信方法、装置、设备及介质,该方法包括:解析用户的配置文件并在服务端创建共享内存;根据服务端进程接收到客户端进程发送的订阅消息建立发布订阅模型的TCP网络连接,以使所述服务端将通信数据写入所述共享内存后输出网络事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。本发明通过在服务端下发网络事件消息至客户端,以使客户端读取服务端写入共享内存中的数据,实现共享内存同步机制。

Description

一种IPC数据通信方法、装置、设备及介质
技术领域
本发明涉及IPC数据通信技术领域,尤其涉及一种IPC数据通信方法、装置、设备及介质。
背景技术
IPC(Inter-Process Communication,进程间通信)是指两个进程的数据之间产生交互,实现IPC通信的方式有很多种,传统的IPC机制有:管道、消息队列、共享内存、套接字、信号、信号量等,但是这些机制均存在一定的缺点,无法在传输性能、稳定性以及安全性方面良好的兼顾。
目前,当一个进程间通信对共享内存进行读写操作的时候,其他进程无法察觉,当有进程在对共享数据进行操作时,会存在多个进程同时对共享内存读写操作情况,无法实现共享内存存取的同步。
发明内容
本发明的目的在于提供一种IPC数据通信方法、装置、设备及介质,以解决现有技术无法实现共享内存存取同步的问题。
为实现上述目的,本发明提供一种IPC数据通信方法,包括:
解析用户的配置文件并在服务端创建共享内存;
根据服务端进程接收到客户端发送的订阅消息建立发布订阅模型的连接,以使所述共享内存接收到所述服务端发送的通信数据后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
优选地,在所述解析用户的配置文件并在服务端创建共享内存之前,还包括:
根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,并获取所述通信数据量的索引,结合通信的标题topic以及所述服务端socket端口号创建所述用户的配置文件。
优选地,所述解析用户的配置文件并在服务端创建共享内存,包括:
根据所述用户的配置文件中的所述数组内存块的大小、数组内存块的数量以及所述通信数据量的索引计算共享内存的大小;
根据所述通信的标题topic确定共享内存的ID;
根据所述服务端socket端口号确定共享内存的接口;
根据所述共享内存的大小、所述共享内存的ID以及所述共享内存的接口创建所述共享内存;其中,所述共享内存包括索引数组以及多个数据数组。
优选地,所述根据服务端进程接收到客户端发送的订阅消息建立发布订阅模型的连接,以使所述共享内存接收到所述服务端发送的通信数据后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据,包括:
所述服务端与所述客户端建立连接后接收到所述通信数据,将所述通信数据写入所述共享内存中的多个数据数组中,并且采用所述索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号;
根据所述共享内存的ID、所述每个数组的索引号和所述数据的长度创建所述事件消息,以使所述客户端解析所述事件消息并读取多个所述数据数组的通信数据。
本发明还提供一种IPC数据通信装置,包括:
创建模块,用于解析用户的配置文件并在服务端创建共享内存;
共享模块,用于根据服务端进程接收到客户端发送的订阅消息建立发布订阅模型的连接,以使所述共享内存接收到所述服务端发送的通信数据后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
优选地,还包括配置模块,所述配置模块用于:
根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,并获取所述通信数据量的索引,结合通信的标题topic以及所述服务端socket端口号创建所述用户的配置文件。
优选地,所述创建模块,还用于:
根据所述用户的配置文件中的所述数组内存块的大小、数组内存块的数量以及所述通信数据量的索引计算共享内存的大小;
根据所述通信的标题topic确定共享内存的ID;
根据所述服务端socket端口号确定共享内存的接口;
根据所述共享内存的大小、所述共享内存的ID以及所述共享内存的接口创建所述共享内存;其中,所述共享内存包括索引数组以及多个数据数组。
优选地,所述共享模块,还用于:
所述服务端与所述客户端建立连接后接收到所述通信数据,将所述通信数据写入所述共享内存中的多个数据数组中,并且采用所述索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号;
根据所述共享内存的ID、所述每个数组的索引号和所述数据的长度创建所述事件消息,以使所述客户端解析所述事件消息并读取多个所述数据数组的通信数据。
本发明还提供一种终端设备,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一项所述的IPC数据通信方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的IPC数据通信方法。
相对于现有技术,本发明的有益效果在于:
本发明通过解析用户的配置文件并在服务端创建共享内存,共享内存接收到客户端发送的订阅消息后输出事件消息,以事件消息触发客户端读取共享内存中的数据,实现共享内存同步机制。由于是在服务端创建共享内存进行存储数据,在客户端进行读取数据,并且不要求运行的先后顺序,当程序异常退出时,服务端和客户端互不影响,安全性高。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的IPC数据通信方法的流程示意图;
图2是本发明又一实施例提供的IPC数据通信方法的流程示意图;
图3是本发明某一实施例提供的IPC数据通信消息传输的结构示意图;
图4是本发明另一实施例提供的IPC数据通信方法的流程示意图;
图5是本发明某一实施例提供的IPC数据通信装置的结构示意图;
图6是本发明又一实施例提供的IPC数据通信装置的结构示意图;
图7是本发明另一实施例提供的IPC数据通信装置的结构示意图;
图8是本发明某一实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,本发明某一实施例提供一种IPC数据通信方法。如图1所示,该IPC数据通信方法包括步骤S10至步骤S20。各步骤具体如下:
S10:解析用户的配置文件并在服务端创建共享内存。
IPC(进程间通信,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法,进程是计算机系统分配资源的最小单位(严格说来是线程)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。通常,使用进程间通信的两个应用可以被分为客户端和服务器端。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,其中,json配置文件是一种特定格式的文本文件。
解析用户的配置文件,获取配置参数,根据用户的配置文件中的数组内存块的大小、数组内存块的数量以及通信数据量的索引计算共享内存的大小:数组内存块的大小乘以数组内存块的数量加上通信数据量的索引。
根据通信的标题topic确定共享内存的ID,具体的,根据用户配置的通信的标题topic进行哈希运算得到共享内存的ID。
根据服务端socket端口号确定共享内存的接口,具体的,使用当前运行的操作系统环境的系统调用接口确定共享内存的接口。
根据共享内存的大小、共享内存的ID以及共享内存的接口创建共享内存,其中,共享内存包括索引数组以及多个数据数组。规定创建在服务端的共享内存的大小足够大,这样数据的索引数组和数据数组足够多,数据数组用于保存写入的具体数据,索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号。
请参阅图2,在某一实施例中,在上述步骤S10解析用户的配置文件并在服务端创建共享内存之前,还包括以步骤:
S30:根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,并获取所述通信数据量的索引,结合通信的标题topic以及所述服务端socket端口号创建所述用户的配置文件。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,其中,json配置文件是一种特定格式的文本文件。
S20:根据服务端进程接收到客户端发送的订阅消息建立发布订阅模型的连接,以使所述共享内存接收到所述服务端发送的通信数据后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
服务端往共享内存中的多个数据数组写入数据,并且采用所索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号,根据共享内存的ID、每个数组的索引号和数据的长度创建事件消息,以使客户端解析事件消息并读取多个所述数据数组的数据。
在服务端创建事件消息发布者,基于套接字TCP协议,使用操作系统网络相关接口,创建一个订阅-发布消息通信模型以及事件消息(event message)的发布者。从用户配置文件中可获取服务端消息发布者的网络端口号,基于订阅-发布的消息通信模型,将客户端进程通过套接字(socket)网络通信连接上服务端,订阅消息以阻塞的方式读取网络数据流。客户端进程是消息的订阅者,服务进程发布消息,订阅者能同时收到事件消息,实现同步机制。
服务端往共享内存的一个数据数组写数据,在写入数据后,发布事件消息,事件消息的内容是共享内存的ID、每个数组的索引号和数据的长度,若服务端再次发送数据,则在下一块数据数组写入数据,写完再次发送事件消息,循环地使用数据数组。
客户端在收到事件消息后,通过解析事件消息,根据配置的topic字符串进行哈希运算得到共享内存的ID,尝试打开共享内存,若客户端程序先运行的话,由于服务端还没运行创建共享内存,客户端会找不到共享内存,就循环间隔100毫秒的时间尝试去打开,打开成功之后,根据事件消息中数据数组的索引定位到目标数据数组,再进一步读取目标数据数组内的数据。
如上所述,本发明通过配置文件创建足够大的共享内存,将共享内存一共分为两个部分,索引数组和数据数组,同时还创建了一个事件消息,实现共享同步机制,且本发明不需要规定客户端和服务端的启动顺序先后,而且,服务端和客户端因为异常被退出不会相互影响,安全性高。
请参阅图3和图4,在一具体实施例中,上述步骤S20包括以下子步骤:
S21:根据服务端接收到客户端发送的订阅消息创建发布订阅模型。
在服务端创建事件消息发布者,基于套接字TCP协议,使用操作系统网络相关接口,创建一个订阅-发布消息的发布订阅模型,基于订阅-发布的的发布订阅模型,将客户端进程通过套接字(socket)网络通信连接上服务端,订阅消息以阻塞的方式读取网络数据流。
S22:服务端根据接收到的订阅消息配置共享内存并输出事件消息至客户端。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,将该配置文件作为订阅消息。
解析该订阅消息获取配置参数创建共享内存,根据用户的配置文件中的数组内存块的大小、数组内存块的数量以及通信数据量的索引计算共享内存的大小:数组内存块的大小乘以数组内存块的数量加上通信数据量的索引。根据通信的标题topic确定共享内存的ID,具体的,根据用户配置的通信的标题topic进行哈希运算得到共享内存的ID。根据服务端socket端口号确定共享内存的接口,具体的,使用当前运行的操作系统环境的系统调用接口确定共享内存的接口。根据共享内存的大小、共享内存的ID以及共享内存的接口创建共享内存,其中,共享内存包括索引数组以及多个数据数组。
服务端往共享内存的一个数据数组写数据,在写入数据后,发布事件消息至客户端,事件消息的内容是共享内存的ID、每个数组的索引号和数据的长度。
S23:客户端进行解析并读取共享内存的内容。
客户端在收到事件消息后,通过解析事件消息,根据配置的topic字符串进行哈希运算得到共享内存的ID,尝试打开共享内存,若客户端程序先运行的话,由于服务端还没运行创建共享内存,客户端会找不到共享内存,就循环间隔100毫秒的时间尝试去打开,打开成功之后,解析得到topic字符串、数据数组的索引号和数据长度,就去读取共享内存中的数据数组的数据。
本发明通过配置文件创建足够大的共享内存,将共享内存一共分为两个部分,索引数组和数据数组,同时还创建了一个事件消息,实现共享同步机制,且本发明不需要规定客户端和服务端的启动顺序先后,而且,服务端和客户端因为异常被退出不会相互影响,安全性高,并且实现了通信数据的一对多分发功能。
请参阅图5,本发明另一实施例提供一种IPC数据通信装置,包括创建模块10和共享模块20:
创建模块10,用于解析用户的配置文件并在服务端创建共享内存。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,其中,json配置文件是一种特定格式的文本文件。
解析用户的配置文件,获取配置参数,根据用户的配置文件中的数组内存块的大小、数组内存块的数量以及通信数据量的索引计算共享内存的大小:数组内存块的大小乘以数组内存块的数量加上通信数据量的索引。
根据通信的标题topic确定共享内存的ID,具体的,根据用户配置的通信的标题topic进行哈希运算得到共享内存的ID。
根据服务端socket端口号确定共享内存的接口,具体的,使用当前运行的操作系统环境的系统调用接口确定共享内存的接口。
根据共享内存的大小、共享内存的ID以及共享内存的接口创建共享内存,其中,共享内存包括索引数组以及多个数据数组。规定创建在服务端的共享内存的大小足够大,这样数据的索引数组和数据数组足够多,数据数组用于保存写入的具体数据,索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号。
请参阅图2和图6,在某一实施例中,IPC数据通信装置还包括配置模块30。配置模块用于根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,并获取所述通信数据量的索引,结合通信的标题topic以及所述服务端socket端口号创建所述用户的配置文件。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,其中,json配置文件是一种特定格式的文本文件。
共享模块20,用于根据服务端进程接收到客户端发送的订阅消息建立发布订阅模型的连接,以使所述共享内存接收到所述服务端发送的通信数据后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
服务端往共享内存中的多个数据数组写入数据,并且采用所索引数组保存着每个写入数据的唯一标识、数据的下标、数据的长度以及每个数组的索引号,根据共享内存的ID、每个数组的索引号和数据的长度创建事件消息,以使客户端解析事件消息并读取多个所述数据数组的数据。
在服务端创建事件消息发布者,基于套接字TCP协议,使用操作系统网络相关接口,创建一个订阅-发布消息通信模型以及事件消息(event message)的发布者。从用户配置文件中可获取服务端消息发布者的网络端口号,基于订阅-发布的消息通信模型,将客户端进程通过套接字(socket)网络通信连接上服务端,订阅消息以阻塞的方式读取网络数据流。客户端进程是消息的订阅者,服务进程发布消息,订阅者能同时收到事件消息,实现同步机制。
服务端往共享内存的一个数据数组写数据,在写入数据后,发布事件消息,事件消息的内容是共享内存的ID、每个数组的索引号和数据的长度,若服务端再次发送数据,则在下一块数据数组写入数据,写完再次发送事件消息,循环地使用数据数组。
客户端在收到事件消息后,通过解析事件消息,根据配置的topic字符串进行哈希运算得到共享内存的ID,尝试打开共享内存,若客户端程序先运行的话,由于服务端还没运行创建共享内存,客户端会找不到共享内存,就循环间隔100毫秒的时间尝试去打开,打开成功之后,根据事件消息中数据数组的索引定位到目标数据数组,再进一步读取目标数据数组内的数据。
如上所述,本发明通过配置文件创建足够大的共享内存,将共享内存一共分为两个部分,索引数组和数据数组,同时还创建了一个事件消息,实现共享同步机制,且本发明不需要规定客户端和服务端的启动顺序先后,而且,服务端和客户端因为异常被退出不会相互影响,安全性高。
请参阅图3和图4以及图7,在一具体实施例中,本发明提供一种IPC数据通信装置,还包括通信模块21、第一传输模块22和第二传输模块23。
通信模块21用于根据服务端接收到客户端发送的订阅消息创建发布订阅模型。
在服务端创建事件消息发布者,基于套接字TCP协议,使用操作系统网络相关接口,创建一个订阅-发布消息的发布订阅模型,基于订阅-发布的的发布订阅模型,将客户端进程通过套接字(socket)网络通信连接上服务端,订阅消息以阻塞的方式读取网络数据流。
第一传输模块22用于服务端根据接收到的订阅消息配置共享内存并输出事件消息至客户端。
将用户根据通信数据量的大小以及通信的频率配置好共享内存数组内存块的大小和数量、通信的标题topic和服务端socket端口号,写在json配置文件中,将该配置文件作为订阅消息。
解析该订阅消息获取配置参数创建共享内存,根据用户的配置文件中的数组内存块的大小、数组内存块的数量以及通信数据量的索引计算共享内存的大小:数组内存块的大小乘以数组内存块的数量加上通信数据量的索引。根据通信的标题topic确定共享内存的ID,具体的,根据用户配置的通信的标题topic进行哈希运算得到共享内存的ID。根据服务端socket端口号确定共享内存的接口,具体的,使用当前运行的操作系统环境的系统调用接口确定共享内存的接口。根据共享内存的大小、共享内存的ID以及共享内存的接口创建共享内存,其中,共享内存包括索引数组以及多个数据数组。
服务端往共享内存的一个数据数组写数据,在写入数据后,发布事件消息至客户端,事件消息的内容是共享内存的ID、每个数组的索引号和数据的长度。
第二传输模块23用于客户端进行解析并读取共享内存的内容。
客户端在收到事件消息后,通过解析事件消息,根据配置的topic字符串进行哈希运算得到共享内存的ID,尝试打开共享内存,若客户端程序先运行的话,由于服务端还没运行创建共享内存,客户端会找不到共享内存,就循环间隔100毫秒的时间尝试去打开,打开成功之后,解析得到topic字符串、数据数组的索引号和数据长度,就去读取共享内存中的数据数组的数据。
本发明通过配置文件创建足够大的共享内存,将共享内存一共分为两个部分,索引数组和数据数组,同时还创建了一个事件消息,实现共享同步机制,且本发明不需要规定客户端和服务端的启动顺序先后,而且,服务端和客户端因为异常被退出不会相互影响,安全性高,并且实现了通信数据的一对多分发功能。
请参阅图8,本发明某一实施例提供一种终端设备,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的IPC数据通信方法。
处理器用于控制该终端设备的整体操作,以完成上述的IPC数据通信方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该终端设备的操作,这些数据例如可以包括用于在该终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在一示例性实施例中,终端设备可以被一个或多个应用专用集成电路(Application Specific 1ntegrated Circuit,简称AS1C) 、数字信号处理器(DigitalSignal Processor,简称DSP) 、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD) 、现场可编程门阵列(Field Programmable Gate Array ,简称FPGA) 、控制器、微控制器、微处理器或其他电子元件实现,用于执行如上述任一项实施例所述的IPC数据通信方法,并达到如上述方法一致的技术效果。
在另一示例性实施例中,还提供一种包括计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如上述任一项实施例所述的IPC数据通信方法的步骤。例如,该计算机可读存储介质可以为上述包括计算机程序的存储器,上述计算机程序可由终端设备的处理器执行以完成如上述任一项实施例所述的IPC数据通信方法,并达到如上述方法一致的技术效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种IPC数据通信方法,其特征在于,包括:
解析用户的配置文件并在服务端创建共享内存;
根据服务端进程接收到客户端进程发送的订阅消息建立发布订阅模型的TCP网络连接,以使所述服务端将通信数据写入所述共享内存后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
2.根据权利要求1所述的IPC数据通信方法,其特征在于,在所述解析用户的配置文件并在服务端创建共享内存之前,还包括:
根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,结合通信的标题topic以及服务端的socket端口号创建所述用户的配置文件。
3.根据权利要求2所述的IPC数据通信方法,其特征在于,所述解析用户的配置文件并在服务端创建共享内存,包括:
根据所述用户的配置文件中的所述数组内存块的大小、数组内存块的数量计算共享内存的大小;
根据所述通信的标题topic确定共享内存的ID;
根据所述共享内存的大小以及所述共享内存的ID创建所述共享内存;其中,所述共享内存包括数据数组和索引数组。
4.根据权利要求3所述的IPC数据通信方法,其特征在于,所述根据服务端进程接收到客户端进程发送的订阅消息建立发布订阅模型的TCP网络连接,以使所述服务端将通信数据写入所述共享内存后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据,包括:
根据所述配置文件中的所述socket端口号确定所述服务端进程和所述客户端进程发布TCP网络连接的端口号;
基于所述服务端进程与所述客户端进程发布TCP网络连接的端口号建立连接后接收到所述通信数据,将所述通信数据写入所述共享内存中的数据数组中,并且采用所述索引数组保存每个写入数据的数据标题、数据的索引号以及数据的长度;其中,将写入所述数据数组的数据对应在所述数据数组中的下标作为所述数据的索引号;
根据所述共享内存的ID,所述客户端进程打开所述服务端进程创建的共享内存;所述服务端根据所述数据标题、所述数据的索引号和所述数据的长度创建所述事件消息,以使所述客户端解析所述事件消息并读取所述数据数组中的通信数据。
5.一种IPC数据通信装置,其特征在于,包括:
创建模块,用于解析用户的配置文件并在服务端创建共享内存;
共享模块,用于根据服务端进程接收到客户端进程发送的订阅消息建立发布订阅模型的连接,以使所述服务端将通信数据写入所述共享内存后输出事件消息,以所述事件消息触发所述客户端读取所述共享内存中的数据。
6.根据权利要求5所述的IPC数据通信装置,其特征在于,还包括配置模块,所述配置模块用于:
根据通信数据量以及通信频率配置数组内存块的大小和数组内存块的数量,结合通信的标题topic以及服务端的socket端口号创建所述用户的配置文件。
7.根据权利要求6所述的IPC数据通信装置,其特征在于,所述创建模块,还用于:
根据所述用户的配置文件中的所述数组内存块的大小、数组内存块的数量计算共享内存的大小;
根据所述通信的标题topic确定共享内存的ID;
根据所述共享内存的大小以及所述共享内存的ID创建所述共享内存;其中,所述共享内存包括数据数组和索引数组。
8.根据权利要求7所述的IPC数据通信装置,其特征在于,所述共享模块,还用于:
根据所述配置文件中的所述socket端口号确定所述服务端进程和所述客户端进程发布TCP网络连接的端口号;
基于所述服务端进程与所述客户端进程发布TCP网络连接的端口号建立连接后接收到所述通信数据,将所述通信数据写入所述共享内存中的数据数组中,并且采用所述索引数组保存每个写入数据的数据标题、数据的索引号以及数据的长度;其中,将写入所述数据数组的数据对应在所述数据数组中的下标作为所述数据的索引号;
根据所述共享内存的ID,所述客户端进程打开所述服务端进程创建的共享内存;所述服务端根据所述数据标题、所述数据的索引号和所述数据的长度创建所述事件消息,以使所述客户端解析所述事件消息并读取所述数据数组中的通信数据。
9.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一项所述的IPC数据通信方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的IPC数据通信方法。
CN202111637570.8A 2021-12-30 2021-12-30 一种ipc数据通信方法、装置、设备及介质 Active CN114003413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111637570.8A CN114003413B (zh) 2021-12-30 2021-12-30 一种ipc数据通信方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111637570.8A CN114003413B (zh) 2021-12-30 2021-12-30 一种ipc数据通信方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114003413A true CN114003413A (zh) 2022-02-01
CN114003413B CN114003413B (zh) 2022-04-26

Family

ID=79932190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111637570.8A Active CN114003413B (zh) 2021-12-30 2021-12-30 一种ipc数据通信方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114003413B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114490141A (zh) * 2022-04-14 2022-05-13 中国电子科技集团公司第二十八研究所 一种基于共享内存的高并发ipc数据交互方法
CN116260893A (zh) * 2023-02-06 2023-06-13 中国西安卫星测控中心 一种数据处理系统消息订阅发布装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160197971A1 (en) * 2015-01-06 2016-07-07 Sonic Ip, Inc. Systems and Methods for Encoding and Sharing Content between Devices
CN109508241A (zh) * 2018-11-20 2019-03-22 中国电子科技集团公司第五十四研究所 一种进程间数据交换方法
CN110336736A (zh) * 2019-05-27 2019-10-15 四川长虹电器股份有限公司 基于mqtt服务器集群实现共享订阅的方法
CN110399229A (zh) * 2018-04-25 2019-11-01 清华大学 进程间的通信方法、装置、系统、介质及终端
CN110928700A (zh) * 2018-09-20 2020-03-27 北京君正集成电路股份有限公司 多进程通讯方法和装置
US20200301765A1 (en) * 2016-11-25 2020-09-24 Genetec Inc. System for inter-process communication
CN111796948A (zh) * 2020-07-02 2020-10-20 长视科技股份有限公司 一种共享内存访问方法、装置、计算机设备和存储介质
CN112114983A (zh) * 2020-09-14 2020-12-22 深圳花儿数据技术有限公司 一种基于共享内存的通信方法、装置和设备
CN112445620A (zh) * 2020-11-30 2021-03-05 苏州浪潮智能科技有限公司 一种smb协议写入性能的优化方法、装置及可读存储介质
CN113419881A (zh) * 2021-08-23 2021-09-21 中电烽友信息技术(武汉)有限公司 一种基于通用黑板的本地共享内存运行方法和系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160197971A1 (en) * 2015-01-06 2016-07-07 Sonic Ip, Inc. Systems and Methods for Encoding and Sharing Content between Devices
US20200301765A1 (en) * 2016-11-25 2020-09-24 Genetec Inc. System for inter-process communication
CN110399229A (zh) * 2018-04-25 2019-11-01 清华大学 进程间的通信方法、装置、系统、介质及终端
CN110928700A (zh) * 2018-09-20 2020-03-27 北京君正集成电路股份有限公司 多进程通讯方法和装置
CN109508241A (zh) * 2018-11-20 2019-03-22 中国电子科技集团公司第五十四研究所 一种进程间数据交换方法
CN110336736A (zh) * 2019-05-27 2019-10-15 四川长虹电器股份有限公司 基于mqtt服务器集群实现共享订阅的方法
CN111796948A (zh) * 2020-07-02 2020-10-20 长视科技股份有限公司 一种共享内存访问方法、装置、计算机设备和存储介质
CN112114983A (zh) * 2020-09-14 2020-12-22 深圳花儿数据技术有限公司 一种基于共享内存的通信方法、装置和设备
CN112445620A (zh) * 2020-11-30 2021-03-05 苏州浪潮智能科技有限公司 一种smb协议写入性能的优化方法、装置及可读存储介质
CN113419881A (zh) * 2021-08-23 2021-09-21 中电烽友信息技术(武汉)有限公司 一种基于通用黑板的本地共享内存运行方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姚金阳: ""面向间接数组索引的向量化方法"", 《计算机科学》 *
孙伟: ""高效时空大数据服务若干关键技术研究"", 《中国博士学位论文全文数据库 基础科学辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114490141A (zh) * 2022-04-14 2022-05-13 中国电子科技集团公司第二十八研究所 一种基于共享内存的高并发ipc数据交互方法
CN114490141B (zh) * 2022-04-14 2022-07-05 中国电子科技集团公司第二十八研究所 一种基于共享内存的高并发ipc数据交互方法
CN116260893A (zh) * 2023-02-06 2023-06-13 中国西安卫星测控中心 一种数据处理系统消息订阅发布装置
CN116260893B (zh) * 2023-02-06 2023-09-12 中国西安卫星测控中心 一种数据处理系统消息订阅发布装置

Also Published As

Publication number Publication date
CN114003413B (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
CN114003413B (zh) 一种ipc数据通信方法、装置、设备及介质
CN110113381B (zh) 一种区块链中订阅主题的方法及装置
US20170329565A1 (en) Information processing method, client, server, and computer-readable storage medium
CN107920094B (zh) 数据获取方法、装置、服务器及网络设备
CN107577578B (zh) 统计nfs操作字时延的方法、装置、设备以及存储介质
WO2014206289A1 (en) Method and apparatus for outputting log information
CN109254854A (zh) 异步调用方法、计算机装置及存储介质
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
CN103023939A (zh) 在Nginx上实现云缓存的REST接口的方法和系统
CN112307397A (zh) 基于在线文档的日程处理方法、装置、设备及存储介质
CN113965628B (zh) 消息调度方法、服务器和存储介质
CN110554917A (zh) 高效遍历较大数据量集合的方法、系统、终端及存储介质
CN111064626A (zh) 配置更新方法、装置、服务器及可读存储介质
CN111666145A (zh) 消息队列的消息处理方法、系统和计算机设备
WO2021226781A1 (zh) 防火墙规则的更新方法、装置、服务器及存储介质
CN110442819A (zh) 数据处理方法、装置、存储介质及终端
CN110069533B (zh) 一种基于区块链的事件订阅方法及装置
CN114138476A (zh) 一种池化资源的处理方法、装置、电子设备及介质
CN116723166A (zh) 一种消息推送的实现方法、装置及介质
CN115514746B (zh) 即时通信方法、装置、系统、设备和存储介质
CN110262912B (zh) 一种过程调用gRPC的调用方法及装置
US20230066881A1 (en) Information flow-based decision-making and scheduling customization method and apparatus
CN112333262A (zh) 数据更新提示方法、装置、计算机设备及可读存储介质
CN114244758A (zh) 安卓平台的网络诊断方法、存储介质、电子设备及系统
CN113407629A (zh) 数据同步的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Floor 25, Block A, Zhongzhou Binhai Commercial Center Phase II, No. 9285, Binhe Boulevard, Shangsha Community, Shatou Street, Futian District, Shenzhen, Guangdong 518000

Patentee after: Shenzhen Youjia Innovation Technology Co.,Ltd.

Address before: 518051 401, building 1, Shenzhen new generation industrial park, No. 136, Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen, Guangdong Province

Patentee before: SHENZHEN MINIEYE INNOVATION TECHNOLOGY Co.,Ltd.