Отправка пакетов через 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` для чтения из сокета.