erlang分布式入门(一)-ping pong

测试环境和http://willvvv.iteye.com/blog/1523918 一样,192.168.0.182(centos-182)和192.168.0.183(centos-183),

1.按照上面链接(步骤1-4)设置通过ssh hostname 免输入密码直接登录。

2.设置erlang的magiccookie,由于都是以root账号操作,分别在两台机子上执行以下命令

cd /root

vi .erlang.cookie

输入

  1. centos_erlang

:wq 退出保存

chmod 400 .erlang.cookie,linux下需要用户对magiccookie有读权限

3.启动epmd进程,它负责映射符号名到机器地址在两个机器都执行:epmd -daemon

4.ping-pong测试代码,来源自网上erlang教程,tut17.erl

  1. -module(tut17).
  2. -export([start_ping/1, start_pong/0,  ping/2, pong/0]).
  3. ping(0, Pong_Node) ->
  4. {pong, Pong_Node} ! finished,
  5. io:format("ping finished~n", []);
  6. ping(N, Pong_Node) ->
  7. {pong, Pong_Node} ! {ping, self()},
  8. receive
  9. pong ->
  10. io:format("Ping received pong~n", [])
  11. end,
  12. ping(N - 1, Pong_Node).
  13. pong() ->
  14. receive
  15. finished ->
  16. io:format("Pong finished~n", []);
  17. {ping, Ping_PID} ->
  18. io:format("Pong received ping~n", []),
  19. Ping_PID ! pong,
  20. pong()
  21. end.
  22. start_pong() ->
  23. register(pong, spawn(tut17, pong, [])).
  24. start_ping(Pong_Node) ->
  25. spawn(tut17, ping, [3, Pong_Node]).

5.在centos-183上执行erl -sname 'pong' ,启动pong节点,进入erl命令行之后输入 tut17:start_pong().

在centos-182上执行 erl -sname 'ping',启动ping节点,进入erl命令行之后输入 tut17:start_ping('pong@centos-183').

命令及输出见下图:


 

注意在ping节点上的erl命令行启动ping进程的时候如果输入tut17:start_ping(pong@centos-183). 会报错如下:

  1. ** exception error: bad argument in an arithmetic expression
  2. in operator  -/2
  3. called as pong@centos - 183

在参考“庄周梦蝶”的http://www.blogjava.net/killme2008/archive/2007/06/15/124547.html时就出现这个错误,后来在stackoverflow 上找到一个相关问题 http://stackoverflow.com/questions/413736/naming-nodes-in-erlang 才得以解决!

erlang分布式入门(一)-ping pong的更多相关文章

  1. Erlang分布式在linux和windows上的注意事项

    没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下. 1.首先,分布式Erlang的实现提供了自有的安 ...

  2. Erlang 103 Erlang分布式编程

    Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明 2014-11-23 A Outl ...

  3. Erlang cowboy 入门参考之现代Web的发展历史

    Erlang cowboy 入门参考之现代Web发展史 原文: http://ninenines.eu/docs/en/cowboy/1.0/guide/modern_web/ 让我回顾一下web技术 ...

  4. HDU 2492 Ping pong (树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Ping pong Problem Description N(3<=N<=2000 ...

  5. UVALive 4329 Ping pong

                                      Ping pong Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Fo ...

  6. POJ 3928 Ping pong(树状数组)

                                                                          Ping pong Time Limit: 1000MS   ...

  7. LA4329 Ping pong(树状数组与组合原理)

    N (3N20000)ping pong players live along a west-east street(consider the street as a line segment). E ...

  8. Ping pong

    Ping pong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. POJ 3928 Ping pong

    题目链接:http://poj.org/problem?id=3928 乒乓比赛,有N个人参加,输入每个玩家的技能等级,对每个人设置一个特定ID和一个技能值,一场比赛需要两个选手和一个裁判,只有当裁判 ...

随机推荐

  1. HTML基础第十讲---排版卷标

    转自:https://i.cnblogs.com/posts?categoryid=1121494 网页的排版部份也是很重要的一环,有些现成的卷标就可以让您轻易的完成缩排或是一些特殊格式的编排喔! [ ...

  2. mybatis 嵌套查询子查询column传多个参数描述

    https://my.oschina.net/softwarechina/blog/375762

  3. 51Nod——N1118 机器人走方格

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1118 基准时间限制:1 秒 空间限制:131072 KB 分值: 0  ...

  4. Zookeeper源码用ant进行编译为eclipse工程--转载

    原文地址:http://www.it165.net/os/html/201411/10142.html Zookeeper GitHub的下载地址是:https://github.com/apache ...

  5. JS实现时钟效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 【零基础入门学习Python笔记012】一个打了激素的数组3

    列表的一些经常使用操作符 比較操作符 逻辑操作符 连接操作符 反复操作符 成员关系操作符 +表示两个连接.*表示复制. list中"+"两边的类型必须一致. 演示样例: water ...

  7. [Vue] Load components when needed with Vue async components

    In large applications, dividing the application into smaller chunks is often times necessary. In thi ...

  8. 讨论:怎样加快android的开机时间

    如题,近期项目须要,须要将android的开机时间大幅缩短,查了下网上资料,作用有限,望有处理过相关问题的兄弟姐妹參与讨论,给予不吝赐教,期待ing

  9. C#调用oracle存储过程自定义表类型

    http://blog.csdn.net/studyzy/article/details/11524527

  10. iOS_04_学习ios开发的准备

    学习ios开发的准备 * 英语水平:看懂26个英文字母. * 计算机专业:不要求计算机专业,但得有脑子. * 学习态度:积极思考.积极动手.能吃苦.有兴趣. * 编程语言:C语言.C++(可选).Ob ...