IPC мог бы быть другим подходом. Можно создать сегмент общей памяти, который предоставит Вам механизм блокировки, где каждый процесс может затем обновить значение, сохраненное здесь. Это не файл в файловой системе, это - раздел памяти, которая определяется с этой целью.
Можно читать больше о IPC через man ipcs
страница справочника.
Часть конфигурации вашего интерфейса, а именно inet6 2001: 5c0: 1103: 5800 :: / 56
в списке ip addr
, означает две вещи:
2001: 5c0: 1103: 5800 ::
назначен вашему интерфейсу - вы можете ping6
узнать, что он действителен, тогда как 2001: 5c0: 1103 : 5800 :: 1
не отвечает / 56
служит для целей маршрутизации и означает только то, что если вы хотите отправить что-то в сеть с этим префиксом ( inet6 2001: 5c0: 1103: 5800 :: / 56
), он должен выйти через интерфейс tun
. Вы можете узнать это, используя ip -6 route
. О том, как делать то, что вы хотите, вы можете узнать из этого ответа .
Итак, почему сработали привязки? Это потому, что вы можете использовать сетевой адрес в вызове bind
, и он привяжет ваш сокет к интерфейсам, которые имеют доступ к данной сети (в частности, привязка к 0.0.0.0 привязывается ко всем интерфейсам, а не ко всем IP-адресам в Интернете).