с Host, Port отдаю сокет другому процессу и уже он дальше работает с пакетами от этого хоста. А родитель остаётся дальше слушать новые пакеты. Это в принципе возможно?
если хочешь, чтобы на одном UDP-порту каждый пир работал со своим процессом, то нет. Надо делать демультиплексор
То есть, если я сокет отдам другому процессу, родитель порт слушать перестанет?
Что такое демультиплексор?
* принять пакет * взять IP/port отправителя * найти в своём стейте (или в ets, что хуже) пид процесса, который должен общаться с этим отправителем * переслать сообщение
Почему ets хуже, чем state?
ets это локи
Скорее избыточное копирование
Избыточное копирование, как уже написали. Плюс локальность данных — поскольку эти маршруты будут использоваться исключительно в обсуждаемом процессе, нет смысла делать их доступными кому-то ещё. С появлением мапов даже не стоит вопрос производительности.
Обсуждают сегодня