Отправка пакетов через UDP в erlang

Поэтому я пытаюсь отправить пакет udp на прослушивающий порт на компьютере, который не подключен к той же локальной сети, но имеет доступ в Интернет через gen_udp в erlang.

Я запускаю свой первый узел, открывая порт ({ok, Socket} = gen_udp:open(8887).) и открыть порт на другом узле таким же образом, когда я отправляю пакет с одного узла на другой через gen_udp:send я ничего не получаю (пробуя flush() на принимающем узле), поэтому мне интересно, есть ли что-то, что я делаю неправильно?, я проверил брандмауэры и разрешен erlang и epmd.

1 ответ

Решение

Вы пытались установить процесс управления Socket как текущий процесс через:gen_udp:controlling_process(Socket,Pid)?

Затем вы должны настроить цикл приема, и вам будут отправлены сообщения. Формат сообщений должен быть: {udp, Socket, IP, InPortNo, Packet}

Вы также можете попробовать установить сокет в пассивный режим, используя inet:setopts(Socket, [{active, false}]) после того, как вы открыли его. После чего вы можете использовать 'gen_udp:recv/3` для чтения из сокета.

Другие вопросы по тегам