我正在使用5.4文档中的分布式编程教程,并遇到了节点名称的问题.
jamess-macbook由于破折号,我的MacBook默认名称()与Erlang的节点命名方案不相符:
(salt@jamess-macbook)4> {my_process, pepper@jamess-macbook} ! start
** exception error: bad argument in an arithmetic expression
in operator -/2
called as pepper@jamess - macbook
Run Code Online (Sandbox Code Playgroud)
我确信有一种简单的方法可以解决这个问题,除了重命名我想运行Erlang的所有机器,但我在文档中看不到它.
有什么建议?
arc*_*lus 13
你只需要正确引用原子.'pepper@jamess-macbook'(使用单引号)是节点的名称.
如果原子不以小写字母开头,或者如果它包含除字母数字字符,下划线(_)或@之外的其他字符,则应将原子括在单引号(')中.- Erlang参考手册
使用短节点名称(-sname)会产生各种其他后果(与长节点名称节点的互操作性有限,不会将dns信息加载到inet_db等等).
使用以下命令启动 Erlang 解释器:
$ erl -sname node_name
Run Code Online (Sandbox Code Playgroud)
其中node_name是您要用来指代机器的名称。
您甚至可以通过启动解释器的多个实例(每个实例具有不同的节点名称)来在单台计算机上模拟分布式系统。
| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |