2016-05-13 3 views
0

Я запускаю сетевой эмулятор под названием MiniNet Wifi, который позволяет эмулировать сетевые топологии, включая точки доступа и UE (следовательно, Wi-Fi). Программное обеспечение эмуляции является единственным процессом, который может обращаться к некоторым ключевым переменным, например. 'в диапазоне AP' UE (то есть мобильное устройство).Межпроцессная файловая система связи без сокетов

UE и точки доступа работают в отдельных пространствах имен сетей Linux (netns). Эмуляция выполняется в пространстве имен хоста (обычного). Это означает, что связь между сетевым стеком хоста и устройства невозможна. И это также то, как мне это нужно, по несвязанным причинам.

Короче говоря, мне нужно создать поток в процессе эмуляции, который позволит другим процессам передавать сообщения (от и до). Таким образом, мне нужно использовать файловую систему, а не сетевой стек. Поэтому мой вопрос сводится к тому, что «лучший» способ сделать это в python. Именованные каналы, просто файл и т. Д.?

Что можно сказать о том, что его идеал, если передача сообщения довольно быстрая (ish), поскольку задачи имеют несколько критический момент.

Спасибо.

Ps. Все, очевидно, работает на одной физической машине и обменивается файловой системой, то есть не путать с докером.

+0

Я понимаю, что это скорее вопрос операционной системы, но, безусловно, должен быть «предпочтительный» способ сделать это в python. –

+1

Именованные (UNIX) разъемы будут точными - трубы, вероятно, менее полезны. Простой файл + mmap, вероятно, быстрее (и анонимный сегмент mmap/shmem может быть быстрее), но вы должны сами выяснить протокол синхронизации. – Useless

ответ

0

Благодаря @Useless для указания меня в правильном направлении. Я нашел this link, и он отлично решает мою проблему!