Why is this erlang tftpd server seemingly not accepting client requests?

StackOverflow https://stackoverflow.com//questions/11695771

  •  12-12-2019
  •  | 
  •  

Вопрос

I'm attempting to use inet's tftp, but I'm doing something incorrectly. This simple example application, while it does bind to the correct port, never returns data to a client.

To reproduce, open a terminal in the project root and:

make && ./bin/console

This should boot the tftp_hellp application, and drop you into an erlang shell. Confirm that inets is running:

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"}]

and that the tftp daemon is running:

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

Great. Now, if you look in etc/inets.config you'll notice we're binding tftpd to 6969. Open another terminal and:

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

Bother. If my understanding of tftpd were correct--which clearly it's not--we'd get <<"hello world">> back.

What am I doing wrong?

Это было полезно?

Решение

I initially received the same error, but then checked my firewall settings to allow udp/6969 and got the file:

-> % tftp localhost 6969

tftp> get hello.txt

Received 11 bytes in 0.0 seconds

tftp> quit

-> % cat hello.txt

hello world%

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top