需求
在實際工作遇到了需要 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
類進行擴展來實現命名管道了。
– 歡迎點贊、關注、轉發、收藏【我碼玄黃】,gonghao同名