需求
在实际工作遇到了需要 UE
开发进程间通信相关的需求。
经过思考后选择使用命名管道来实现 。
名词概念
首先什么是进程间通信:
进程间通信( Inter-Process Communication
,IPC
)是指在操作系统中,不同进程之间进行数据交换和信息共享的过程。进
程间通信是实现多任务并发操作的重要手段,允许不同的进程之间协同工作和相互协调。
然后什么是命名管道:
命名管道(Named Pipes
),也被称为FIFO
(First-In-First-Out
),是一种特殊的文件系统中的文件,它允许进程之间进行异步通信。
命名管道在 UNIX
和 类UNIX
系统中广泛使用,如 Linux
和 macOS
。它们在 Windows
系统中也有类似的概念,称为命名管道。
命名管道通过文件系统提供了一个接口,使得进程可以通过标准的输入/输出( I/O
)操作(如 read
和 write
)进行通信。
尽管它们被命名为“管道”,但与传统的匿名管道不同,命名管道不是临时或进程内部的;它们是持久的,并且可以通过文件系统名称进行访问。
实际操作
由于是 UE
项目所以使用 C++
进行开发,其中创建UE项目等内容就一笔带过。 先创建一个ANamedPipe
类和他的头文件 ANamedPipe.h
。
这里是使用 UE Actor
来进行之后的蓝图操作所以先继承AActor 使用其他的同理。 首先在ANamedPipe.h
中
然后添加一个蓝图方法来表示创建管道
随后来到 ANamePipe.cpp
中添加对应方法
进行编译过后来到UE中创建一个新的蓝图类
选择继承刚才我们C++编译的ANamedPipe类
之后将其添加到场景之中
可以在蓝图中看到刚才创建的方法就已经可以使用了
之后就可以对这个 ANamedPipe
类进行扩展来实现命名管道了。