进程间通信方法、装置及电子设备的制造方法

文档序号:9524072阅读:315来源:国知局
进程间通信方法、装置及电子设备的制造方法
【技术领域】
[0001]本发明涉及软件通信技术领域,特别是涉及进程间通信方法、装置及电子设备。
【背景技术】
[0002]进程间通信(IPC,Interprocess communicat1n),就是在不同的进程之间传播或者交换信息,下面是几种常见的进程间通信方式:
[0003]1.管道。
[0004]2.有名管道。
[0005]3.信号量。
[0006]4.消息队列。
[0007]5.信号。
[0008]6.套接字(Socket);每种套接字都各有自己的特点,实现方式也都不相同。
[0009]现有技术的缺点是,在不同的操作系统下,这些程序的写法各不相同。比如,Linux/Unix下遵循的是P0SIX接口,而Windows下又是另外一套接口 ;这样就造成一个问题,同一套代码很难在不同的操作系统上运行,造成不同操作系统进程间通讯过程的繁琐。

【发明内容】

[0010]鉴于以上所述现有技术的缺点,本发明的目的在于提供进程间通信方法、装置及电子设备,用于解决现有技术中由于不同操作系统间代码差异而造成进程间通讯繁琐的问题。
[0011 ] 为实现上述目的及其他相关目的,本发明提供一种进程间通信方法,包括:在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址;在各所述进程运行的操作系统中预设的域名映射文件中建立和/或更新所述虚拟IP地址及其关联的域名,所述域名与进程名称相关联;为所述虚拟IP地址注册消息接口 ;在根据进程名称进行进程间通信时,解析与参与通信的进程的进程名称关联的域名以获取对应虚拟IP地址;将所述消息发送至所获取的虚拟IP地址的消息接口以供处理。
[0012]于本发明的一实施例中,所述在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址,包括:检测所注册的IP地址是否与已注册IP地址重复;若是,则重新注册IP地址。
[0013]于本发明的一实施例中,所述消息接口持续或周期性监听消息,所述方法包括:在所述处理消息后,判断对应进程是否结束;若未结束,则令所述消息接口继续监听消息;若结束,则令所述消息接口停止监听消息。
[0014]于本发明的一实施例中,所述操作系统包括Linux/Unix或Windows,所述域名映射文件为所述操作系统中的hosts文件。
[0015]于本发明的一实施例中,所述消息接口包括套接字Socket。
[0016]为实现上述目的及其他相关目的,本发明提供一种进程间通信装置,包括:地址注册模块,用于在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址;关联模块,用于在各所述进程运行的操作系统中预设的域名映射文件中建立和/或更新所述虚拟IP地址及其关联的域名,其中,所述域名与进程名称相关联;接口注册模块,用于为所述虚拟IP地址注册消息接口 ;解析模块,用于在根据进程名称进行进程间通信时,解析与参与通信的进程的进程名称关联的域名以获取对应虚拟IP地址;消息传输模块,用于将所述消息发送至所获取的虚拟IP地址的消息接口以供处理。
[0017]于本发明的一实施例中,所述地址注册模块包括:地址重复检测模块,用于检测所注册的IP地址是否与已注册IP地址重复;若是,则重新注册IP地址。
[0018]于本发明的一实施例中,所述消息接口持续或周期性监听消息;所述装置包括:消息接口管理模块,用于在所述处理消息后,判断对应进程是否结束;若未结束,则令所述消息接口继续监听消息;若结束,则令所述消息接口停止监听消息。
[0019]于本发明的一实施例中,所述操作系统包括Linux/Unix或Windows,所述域名映射文件为所述操作系统中的hosts文件。
[0020]于本发明的一实施例中,所述消息接口包括套接字Socket。
[0021]为实现上述目的及其他相关目的,本发明提供一种电子设备,运行有一或多个操作系统,且应用所述的进程间通信装置。
[0022]如上所述,本发明的进程间通信方法、装置及电子设备,在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址;在各所述进程运行的操作系统中预设的域名映射文件中建立和/或更新所述虚拟IP地址及其关联的域名,所述域名与进程名称相关联;为所述虚拟IP地址注册消息接口 ;在根据进程名称进行进程间通信时,解析与参与通信的进程的进程名称关联的域名以获取对应虚拟IP地址;将所述消息发送至所获取的虚拟IP地址的消息接口以供处理;通过本发明的技术方案实现通过各种操作系统间通用的域名及IP地址即可完成进程间消息的传递,解决现有技术的问题,方便,灵活,可以方便地移植到不同的操作系统,且很容易支持分布式部署。
【附图说明】
[0023]图1显示为本发明于一实施例中的进程间通信方法的流程示意图。
[0024]图2显示为本发明于一实施例中的进程间通信装置的模块示意图。
[0025]图3显示为本发明于一实施例中的电子设备的结构示意图。
[0026]元件标号说明
[0027]200进程间通信装置
[0028]201地址注册模块
[0029]202关联模块
[0030]203接口注册模块
[0031]204解析模块
[0032]205消息传输模块
[0033]300电子设备
[0034]301进程间通信装置
[0035]S101 ?S105 步骤
【具体实施方式】
[0036]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0037]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0038]本发明的技术方案应用于进程间通讯,所谓进程,进程(Process)是计算机中的应用程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,应用程序通过进程活动实现功能。
[0039]于本发明的一实施例中,本发明提供一种进程间通信方法,包括:在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址;在各所述进程运行的操作系统中预设的域名映射文件中建立和/或更新所述虚拟IP地址及其关联的域名,所述域名与进程名称相关联;为所述虚拟IP地址注册消息接口 ;在根据进程名称进行进程间通信时,解析与参与通信的进程的进程名称关联的域名以获取对应虚拟IP地址;将所述消息发送至所获取的虚拟IP地址的消息接口以供处理。
[0040]以下结合图示进行具体说明:
[0041]请参阅图1,本发明提供一种进程间通信方法,包括:
[0042]步骤S101:在一或多个操作系统中,对应每个需通信的进程注册虚拟IP地址。
[0043]于本发明的一实施例中,现有操作系统,如Windows或Linux/Unix等,都支持虚拟IP地址的注册,可通过调用操作系统的系统调用函数注册虚拟IP地址,注册虚拟IP地址时,如果该虚拟IP地址已经被注册,则会调用失败,则需要更换一个IP地址重新注册,从而避免了有重复的虚拟IP地址而造成冲突。
[0044]步骤S102:在各所述进程运行的操作系统中预设的域名映射文件中建立和/或更新所述虚拟IP地址及其关联的域名,所述域名与进程名称相关联。
[0045]于本发明的一实施例中,所述操作系统包括Linux/Unix或Windows,所述域名映射文件为所述操作系统中的hosts文件。
[0046]具体来说,操作系统的hosts文件是用于指明IP地址和域名间的映射关系,由于进程注册的IP地址是会发生变化的,因此程序里不能通过写入固定的IP和其它进程进行通信,写入域名会比较的方便,如果IP地址变化了,只需要更新hosts文件中该域名对应的IP地址即可,典型的hosts文件中内容的写法是:Processlname 10.1.1.2,Prosess2name10.1.1.3,其中,Processlname和Process2name是域名且与对应的两个进程的进程名称相同,其IP地址分别是10.1.1.2和10.1.1.3,也就是说,所述域名和进程名称对应指的是:可以相同,也可以是具有预设的关联关系。
[0047]进一步优选的,在其他实施例中,亦可将进程通信时所使用的通信端口与该虚拟IP地址一起绑定。
[0048]步骤S103:为所述虚拟IP地址注册消息接口。
[0049]于本发明的一实施例中,所述消息接口即为Socket (套接字),且通过所述注册将所分配的虚拟IP地址和Socket接口绑定,Socket则可用于进程间消息通信,此处不作赘述。
[0050]步骤S104:在根据进程名称进行进程间通信时,解析与参与通信的进程的进程名称关联的域名以获取对应虚拟IP地址。
[0051]于本发明的一实施例中,在有消息需要传送给一个进程时,可以根据解析该进程的进程名称对应域名,进而通过例如Unix/Linux中的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1