为什么这个erlang tftpd服务器似乎不接受客户端请求?

时间:2012-07-27 21:18:19

标签: erlang tftp

我正在尝试使用inet的tftp,但我做错了。 This simple example application,虽然它确实绑定到正确的端口,但从不 将数据返回给客户。

要重现,请在项目根目录中打开终端并:

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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我最初收到了同样的错误,但随后检查了我的防火墙设置以允许udp / 6969并获取该文件:

-> % tftp localhost 6969

tftp> get hello.txt

Received 11 bytes in 0.0 seconds

tftp> quit

-> % cat hello.txt

hello world%