2016-05-13 66 views
0

我正在运行一个名为的网络模拟器MiniNet Wifi,它允许模拟包括AP和UE(因此无线)的网络拓扑。仿真软件是唯一可以访问一些关键变量的过程,例如'在UE(即移动设备)的范围AP'中。没有套接字的进程间文件系统通信

UE和AP在单独的linux网络命名空间中运行(netns)。仿真运行在主机(常规)名称空间中。这意味着主机和设备网络堆栈之间不能进行通信。这也是我需要它的原因,因为不相关的原因。长话短说,我需要在仿真过程中产生一个线程,以允许其他进程传递消息(往返)。因此我需要使用文件系统而不是网络堆栈。所以我的问题归结为在python中做这件事的'最好'方法是什么。命名管道,只是一个简单的文件等?

还可以提到的是,如果消息传递相当快(ish),它的理想是因为任务有时间限制。

谢谢。

Ps。一切显然都运行在同一台物理机器上并共享文件系统,即不要与docker混淆。

+0

我意识到这是更多的操作系统问题,但肯定必须有一个'首选'的方式来做到这一点在Python中。 –

+1

命名(UNIX)套接字将很好 - 管道可能不太有用。一个简单的文件+ mmap可能更快(并且匿名mmap/shmem片段可能会更快),但是您必须自己计算出同步协议。 – Useless

回答

0

感谢@Useless指引我在正确的方向。我发现this link它完美地解决了我的问题!