分散関数呼び出し(失敗?)
30分プログラム、その123。分散システムの勉強をしたのでさっそく試す。
でも、なんかうまくいってない。大学で動いたプログラムさえ動かない。あとで、インストールしなおそう。
使い方
サーバ側
$ erl -sname foo (foo@localhost) 1> rpc_demo:start(). true
クライアント側
$ erl -sname bar (bar@localhost) 1> rpc:call(foo@localhost,rpc_demo,call,[fun(N)->N+1 end,[1]]). 2
ソースコード
-module(rpc_demo). -compile(export_all). start()-> register(srv,spawn(fun()->loop() end)). loop()-> receive {From,{F,ARGV}}-> From ! {srv,apply(F,ARGV)}, loop(); Any -> exit(Any) end. call(F,ARGV)-> rpc({F,ARGV}). rpc(Q)-> srv ! {self(),Q}, receive {srv,Reply}-> Reply; Any -> exit(Any) end.