Почему этот сервер tftpd erlang, по-видимому, не принимает запросы клиентов?

Пытаюсь использовать tftp инета, но что-то делаю не так. Этот простой пример приложения, хотя и привязывается к правильному порту, никогда не возвращает данные клиенту.

Для воспроизведения откройте терминал в корне проекта и:

make && ./bin/console

Это должно загрузить приложение tftp_hellp и перебросить вас в оболочку erlang. Убедитесь, что inets работает:

1> application:which_applications().
[{inets,"INETS  CXC 138 49","5.9"},
 {sasl,"SASL  CXC 138 11","2.2.1"},
 {stdlib,"ERTS  CXC 138 10","1.18.1"},
 {kernel,"ERTS  CXC 138 10","2.15.1"}]

и что демон tftp запущен:

2> inets:services().
[{tftpd,<0.56.0>},{httpc,<0.50.0>}]

Большой. Теперь, если вы посмотрите в etc/inets.config, вы заметите, что мы привязываем tftpd к 6969. Откройте другой терминал и:

> tftp localhost 6969
tftp> get hello.txt
Transfer timed out.

Беспокоить. Если бы мое понимание tftpd было правильным — а это явно не так — мы бы получили <<"hello world">> обратно.

Что я делаю не так?


person troutwine    schedule 27.07.2012    source источник


Ответы (1)


Сначала я получил ту же ошибку, но затем проверил настройки брандмауэра, чтобы разрешить udp/6969, и получил файл:

-> % tftp localhost 6969

tftp> get hello.txt

Received 11 bytes in 0.0 seconds

tftp> quit

-> % cat hello.txt

hello world%

person Greg    schedule 30.07.2012