简单的分布式Erlang

时间:2010-11-16 22:43:36

标签: erlang distributed

我有一个简单的模块:

-module(dist).
-compile([add/3]).
add(From,X,Y) ->
    From ! X+Y.

我正在启动两个节点。

一个

erl -sname foo 

和另一个

erl -sname bar

在我正在做的吧节点上:

> c(dist).
{ok,dist}
> self().
<0.37.0>
> spawn('foo@unknown-00-23-6c-83-af-bd', dist, add, [self(), 3, 5]).

但我得到的反应是:

Error in process <0.48.0> on node 'foo@unknown-00-23-6c-83-af-bd' with exit value: {undef,[{dist,add,[<8965.37.0>,3,5]}]}

这个错误是什么意思?我想知道这是否意味着我的foo节点没有定义这个模块?我不认为它需要它,但问题并没有通过编译foo节点中的dist来解决,所以我猜这不是问题。

2 个答案:

答案 0 :(得分:7)

导出add / 3。而不是编译选项。

-export([add/3]).

答案 1 :(得分:0)

如果在第一个节点中使用nl(模块),那么该模块的波束将被加载到所有连接的节点