erlang局域网内节点通信——艰难四步曲
2017-04-10 10:26
260 查看
在Programming Erlang这本书中,在写到第十章中,主要实现的是不同节点之间的通信,书上列出了四步,其中的第一步很容易实现,依葫芦画瓢,很容易实现同一台机子上,不同节点之间的通信,运行结果和书上的完全一致。
当你急切地去尝试第二步(在局域网内,不同机子之间的通信)时,你可能会卡住的(本人是这样的,不知道你?),实践的结果和Joe所说的完全不一样(你如果按照书上所说,在kvs:start()的情况下,然后rpc,会得到这样的结果——{badrpc, nodedown})。
下面,就把本人的艰难四步总结一下,
1)学会使用net_adm:ping(node@Hostname)命令。
这个结果可能是pong,也可能是pang。其中pong表示可以ping通,pang表示ping不通。
2)ping通局域网。
在linux shell下把你要通信pc机ping通。
注意有一种可能,就是ping IP地址成功了但是ping机器名称没成功,那是因为机器名和IP地址没有关联。关联的方法是编辑机内的hosts文件。windows平台这个文件在system32/drivers/etc里,而*nix在/etc里。把机子的IP和hostname关联起来,在操作系统shell去ping,成功后再到Erlang下面去ping。(网上的资料)
3)启动erlang节点。
如果以上步骤能实现的话,就启动erlang shell吧。
例如,在一个局域内,我在不同的机子上各自启动了一个erlang shell。
gaoyi@gaoyi-laptop:~$ erl -name fang@192.168.200.53 -setcookie 123
[sunny@localhost ~]4$ erl -name sunny@192.168.200.11 -setcookie 123
注:如果在启动的时候,不用ip的话,下面是ping不通的。
4)net_adm:ping的实现。
例如,我在gaoyi机子上,执行net_adm:ping('sunny@192.168.200.11').
得到的结果是pong,表示可以ping通了,o(∩∩)o...哈哈。
注意:net_adm:ping()内的参数必须带引号的。
至此,我们实现了局域网之间的通信,可以进一步测试程序了。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(5288) | 评论(2) | 转发(0) |
0
上一篇:浅谈rpc(远程过程调用)
下一篇:erlang与c之间的连接
相关热门文章
linux 常见服务端口
xmanager 2.0 for linux配置
【ROOTFS搭建】busybox的httpd...
openwrt中luci学习笔记
什么是shell
linux dhcp peizhi roc
关于Unix文件的软链接
求教这个命令什么意思,我是新...
sed -e "/grep/d" 是什么意思...
谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
百万军中2013-06-17 20:27:57
谢谢,帮了大忙了
回复 | 举报
sunjiangang-ok2012-03-07 15:52:34
修改主机名三部曲
1. 变更当前主机名
两种方法: echo new-hostname > /proc/sys/kernel/hostname
或者: hostname new-hostname
2. 修改配置文件,使得下次重启的时候,使用新的主机名
编辑文件: /etc/sysconfig/network
修改: HOSTNAME=new-hostname.domainname
3. 配置本机的域名解析文件,使得本机的应用程序能够解析新的主机名
编辑文件: /etc/hosts
修改: xxx.xxx.xxx.xxx new-hostname.domainname new-hostname
(这里的xxx代表本机的网络地址,也可以是环回地址127.0.0.1)
回复 | 举报
评论热议
当你急切地去尝试第二步(在局域网内,不同机子之间的通信)时,你可能会卡住的(本人是这样的,不知道你?),实践的结果和Joe所说的完全不一样(你如果按照书上所说,在kvs:start()的情况下,然后rpc,会得到这样的结果——{badrpc, nodedown})。
下面,就把本人的艰难四步总结一下,
1)学会使用net_adm:ping(node@Hostname)命令。
这个结果可能是pong,也可能是pang。其中pong表示可以ping通,pang表示ping不通。
2)ping通局域网。
在linux shell下把你要通信pc机ping通。
注意有一种可能,就是ping IP地址成功了但是ping机器名称没成功,那是因为机器名和IP地址没有关联。关联的方法是编辑机内的hosts文件。windows平台这个文件在system32/drivers/etc里,而*nix在/etc里。把机子的IP和hostname关联起来,在操作系统shell去ping,成功后再到Erlang下面去ping。(网上的资料)
3)启动erlang节点。
如果以上步骤能实现的话,就启动erlang shell吧。
例如,在一个局域内,我在不同的机子上各自启动了一个erlang shell。
gaoyi@gaoyi-laptop:~$ erl -name fang@192.168.200.53 -setcookie 123
[sunny@localhost ~]4$ erl -name sunny@192.168.200.11 -setcookie 123
注:如果在启动的时候,不用ip的话,下面是ping不通的。
4)net_adm:ping的实现。
例如,我在gaoyi机子上,执行net_adm:ping('sunny@192.168.200.11').
得到的结果是pong,表示可以ping通了,o(∩∩)o...哈哈。
注意:net_adm:ping()内的参数必须带引号的。
至此,我们实现了局域网之间的通信,可以进一步测试程序了。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(5288) | 评论(2) | 转发(0) |
0
上一篇:浅谈rpc(远程过程调用)
下一篇:erlang与c之间的连接
相关热门文章
linux 常见服务端口
xmanager 2.0 for linux配置
【ROOTFS搭建】busybox的httpd...
openwrt中luci学习笔记
什么是shell
linux dhcp peizhi roc
关于Unix文件的软链接
求教这个命令什么意思,我是新...
sed -e "/grep/d" 是什么意思...
谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
百万军中2013-06-17 20:27:57
谢谢,帮了大忙了
回复 | 举报
sunjiangang-ok2012-03-07 15:52:34
修改主机名三部曲
1. 变更当前主机名
两种方法: echo new-hostname > /proc/sys/kernel/hostname
或者: hostname new-hostname
2. 修改配置文件,使得下次重启的时候,使用新的主机名
编辑文件: /etc/sysconfig/network
修改: HOSTNAME=new-hostname.domainname
3. 配置本机的域名解析文件,使得本机的应用程序能够解析新的主机名
编辑文件: /etc/hosts
修改: xxx.xxx.xxx.xxx new-hostname.domainname new-hostname
(这里的xxx代表本机的网络地址,也可以是环回地址127.0.0.1)
回复 | 举报
评论热议
相关文章推荐
- erlang局域网内节点通信——艰难四步曲
- erlang局域网内节点通信——艰难四步曲 (转)
- erlang在windows下和虚拟机节点通信
- erlang节点通信小测试
- erlang otp节点间通信
- [Erlang]Erlang与Java如何进行节点通信
- erlang节点间通信使用erlang send 和使用gen_tcp socket性能的对比(
- [Erlang]Erlang与C的节点通信
- ROS学习之路03:编写基于话题(topic)进行通信的节点
- Qt客户端与Erlang服务器的通信(3)
- 不同局域网内经Internet的P2P通信技术总结
- 1个物理机同时搭建2个erlang虚拟节点,不能启用 +A600选项
- 不同局域网内经Internet的P2P通信技术总结不同局域网内经Internet的P2P通信技术总结
- 实验二 串口与节点通信(上)
- Python 局域网内的通信(文件传递)、XML文件的生成 文件的打开
- RChain节点通信机制
- Erlang与C构建的节点通讯
- 局域网内主机之间Socket通信实现
- 使用Erlang UDP做仿真通信
- NS2节点通信半径修改