2

无论我尝试什么,我都无法让两个不同的节点进行通信。这可能是一个非常容易解决的问题。

我已经创建了文件 .cookie.erlang 并将其放入我的主目录中。然后我打开一个终端窗口并输入以下命令:

erl -sname user1@pc
erlang:set_cookie(node(),cookie).

在另一个终端窗口中,我键入:

erl -sname user2@pc
erlang:set_cookie(node(),cookie).

现在,如果我在第一个终端窗口中键入以下命令:

net_adm:ping(user2@pc).

结果我总是得到“假”,这意味着两个节点无法相互连接。我不明白我在这里错过了什么......

4

3 回答 3

1

一定要确保“pc”是您机器的实际主机名。如果不是,请确保您正在使用它。

或者,由于您使用的是 sname 并且两台主机都在同一台机器上,因此您可以使用erl -sname user1and erl -sname user2

于 2012-12-06T22:52:57.030 回答
0

这是一个DNS问题,请看这里,类似问题的答案

于 2014-03-18T03:25:54.170 回答
0

是的,它看起来主要是一个 DNS 问题。如果你在基于 Unix 的操作系统上,你应该在/etc/hosts中更新它,如果它在同一台机器上,你总是可以使用可以访问的localhost

erl -sname a@localhost -cookie aloha

然后在一个单独的终端中:

erl -sname b@localhost -cookie aloha

有了它,您应该能够很好地与节点通信。

于 2017-08-02T03:39:52.983 回答