Отправка пакетов через UDP в erlang - PullRequest
0 голосов
/ 07 мая 2011

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

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

1 Ответ

0 голосов
/ 07 мая 2011

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

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

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

...