不能产卵在二郎一个简单的服务器

我有一个简单的服务器:

-module(simple_server). -export([loop/0]). loop() -> receive {fact, N, Sender} -> Sender ! {factResult, fact(N), self()}, loop(); {fib, N, Sender} -> Sender ! {fibResult, fib(N), self()}, loop(); {stop, Sender} -> Sender ! ok end. fact(0) -> 1; fact(N) -> N * fact(N - 1). fib(N) -> fib(N, 1, 0). fib(0, _B, A) -> A; fib(N, B, A) -> fib(N-1, A+B, B).

然后,我得到这个:

...\code>erl simple_server.erl Eshell V5.7.5 (abort with ^G) 1> Server = spawn('server@myserver', fun simple_server:loop/0). =ERROR REPORT==== 28-Jun-2010::10:46:29 === ** Can not start erlang:apply,[#Fun<simple_server.loop.0>,[]] on server@myserver** <0.33.0>

我错过了什么?

--------------解决方案-------------

它看起来并不像你已经开始作为分布式节点。 我得到同样的错误消息时,开始了我的壳二郎节点,而使用“-sname”/“-name”ERL的标志短名称/长名称。

如果你开始这个壳,因此可以参与分配,还必须确保为simple_server代码在远程节点被加载,或远程节点可以自动加载它从它的代码路径。

对于交互使用 ​​,您可以使用nc(File)nl(Module)命令,在外壳上加载所有已知节点。 使用net_adm:ping(Node)来ping该节点的时候,如果你这样做是不是已经上市erlang:nodes()

你应该先阅读文档。 一些教程将是有益的。

  1. ERL与模块的源代码没有任何东西。 阅读erl -man erl获取更多信息。
  2. erlang:apply\2具有Node作为第一个参数,但Node应该存在,并且必须连接到当前节点。

你应该试试:

$ erl
Erlang R13B04 (erts-5.7.5) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.5 (abort with ^G)
1> c(simple_server).
{ok, simple_serevr}
2> spawn(simple_server, loop, []).
<0.33.0>
3>

由于良好的出发点,你可以看看你了解二郎的一些伟大的好。

分类:二郎神 时间:2015-03-15 人气:0
本文关键词: 二郎神
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.532 (s). 10 q(s)