Добавил версию, где не нужно копировать данные между процессами и сообщения получаются сразу в том же процессе (через active, once и получение сообщения) - можно легко модифицировать, чтобы в том же процессе работать с несколькими сокетами.
Второй вариант с одним процессом, а не с двумя. Третий пример, как это сделать через GenServer, четвёртый пример, как открыть два сокета в одном процессе.