erlang程序设计笔记
时间:2012-10-10 作者:smarteng 分类: 编程
第十章,10.1.3 让客户机和服务器运行于同一个局域网的不同机器上,
我在同一台机器上安装了一个ubuntu虚拟机来模拟一个局域网,
在这个虚拟机上启动节点: erl -name gandalf -setcookie abc
http://topic.csdn.net/u/20081119/23/3c4402c2-0b7d-49ef-aee7-398bf1c083d4.html
原因是我的主机没有域名,因此只能用-sname,也就是短名的形式来启动节点。
我的解决方法是,在本机上装了个2003 Server的虚拟机,建立域控制器,把本机加入到一个域中就可以了。
然后就可以通过erl -name mynode -setcookie abc建立分布式Erlang结点。
但是要想其他节点(假设这个节点叫othernode,运行在局域网上另外的机器上)通过rpc:call调用mynode上的进程,则需要DNS支持。
如果没有DNS,这个也好解决,修改othernode所在主机的C:\WINDOWS\system32\drivers\etc下的hosts文件,进行本地解析就可以了
当然,以上方法是在个人的局域网上做测试时采用的,如果你的机器本身有域名,并且可以通过DNS进行解析的话,以上问题是不会遇到的!
知道答案就好说了,得把这个节点加入域,
又google找到了ubuntu加入域:
安装 likewise-open 到 Ubuntu
sudo aptitude install likewise-open-gui
使用图形连接:
点击 Applications -> Internet -> Likewise to join my computer to an active directory domain
在设置里输入域名称,域登陆帐号。点加入就行了。
使用命令行连接:
sudo domainjoin-cli join fqdn.of.your.domain Administrator
sudo update-rc.d likewise-open defaults
sudo /etc/init.d/likewise-open start
之后,修改/etc/resolv.conf
nameserver 127.0.0.1
#search localdomain
search i.****.com
之后启动节点,就ok了,
测试书上所说的代码,
还得在windows启动一个节点,当然 -setcookie得一致,
修改hosts文件
192.168.240.128 ubuntu.****.com
开始测试吧~