вы пытались установить процесс управления сокетом как текущий процесс с помощью:
gen_udp:controlling_process(Socket,Pid)
?
Затем вы должны настроить цикл приема, и вам будут отправлены сообщения. Формат сообщений должен быть: {udp, Socket, IP, InPortNo, Packet}
Вы также можете попробовать перевести сокет в пассивный режим, используя inet:setopts(Socket, [{active, false}])
после того, как вы его открыли. После чего вы можете использовать 'gen_udp: recv / 3` для чтения из сокета.