Question

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?

Was it helpful?

Solution

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%

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top