erlang之分布式编程入门

首先给出服务器基本代码:

-module(server1).
-compile(export_all).

loop() ->
	receive
		{From,{store,Key,Value}} ->
			put(Key, {ok, Value}),
			From ! {server1,true},
			loop();
		{From,{ge,Key}} ->
			From ! {server1,get(Key)},
			loop()
		end.

start() -> register(server1,spawn(fun() -> loop() end)).

store(Key,Value) -> rpc({store,Key,Value}).

gg(Key) -> rpc({ge,Key}).

rpc(Q) ->
	server1 ! {self(),Q},
	receive
		{server1,A} ->
			A
		end.

1.在本机上创建2个不同的节点,节点间利用自带的rpc:call()函数进行通讯

我们可以看出,我们使用erl -sname name的方式创建了2个节点,一个叫pp,一个叫faker,然后pp调用rpc:call()函数调用了faker的函数,实现了不同节点的通信。

2.在同一个局域网内2个节点通讯

         我们可以看出,我们这里使用的是-name,而不是-sname,如果我们要在2太不同的电脑上进行2个节点间的通信应该用-name而不是-sname,而且我们这里也加入了-setcookie参数,若2个节点的cookie不同,是无法进行通信了,这也增加了安全性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值