试图让两个erlang节点相互通信:一个在Ubuntu机器上,另一个在Windows XP上.
我们得到一个" 来自不允许节点的连接尝试 "消息,该消息阻止一个节点从另一个节点接收消息.
他们都使用5.XXX版本的Erlang OTP.
两个节点都有相同的cookie(.erlang.cookie)
我们正在启动接收器节点:
erl -name fred@ipaddress
并使用'fred @ ipaddress'(单引号)调用其上的函数
我们关闭了防火墙.
那么还有什么可能阻止连接呢?
更新:我们使用erlang:get_cookie()检查两个节点上的cookie,值不同.这就是问题所在.我们认为我们通过将相同的.erlang.cookie文件放在我们在两台机器上运行erlang的目录中来设置cookie.但也许这是错误的地方?
更新2:感谢大家的答案.我们选择Ranok作为我们的答案,因为它对我们很有用.我确信一些设置cookie的替代方法也可以.
此外,当您启动Erlang系统时,会有一个命令行标志-setcookie
,可让您在开始时指定cookie.
erl -name fred@ipaddress -setcookie FOOBAR
希望有所帮助,雅各布
首先检查每个节点的cookie.从shell:
erlang:get_cookie().
如果它们不相同,则更改其中一个节点的cookie以匹配另一个:
erlang:set_cookie(node(), "newcookie").
如果一切正常,您需要了解为什么没有从配置文件或命令行arg中选择cookie设置.