我在Erlang shell里面编写了以下代码:
1> node().
nonode@nohost
但是
2> net_adm:ping(node()).
pang
为什么?出了什么问题?为什么不是pong?
谢谢。
您没有使用 -name
或 -sname
启动 Erlang,这意味着分布子系统未启动。请尝试以下操作:
$ erl -sname mynode
Erlang R14B02 (erts-5.8.3) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.3 (abort with ^G)
(mynode@foobar)1> node().
mynode@foobar
(mynode@foobar)2> net_adm:ping(node()).
pong
我不是100%确定,但你启动了erl而没有使用“-name”或“-sname”。我相信net_adm:ping/1只在分布式模式下工作。
erlang:get_cookie()
检查cookie。它将是一些随机字符串。您可以使用erlang:set_cookie(Node, Cookie)
设置另一个节点的cookie,或将cookie传递给标志-setcookie
。(foo@earth) erlang:get_cookie().
ASYRQKVNIFHWIIJQZIYN
(foo@earth) erlang:set_cookie(node(), 'secret cookie').
true
net:ping('mongooseim@localhost').
pong
查看文档
(保留HTML)
net_adm
包。 - weima