erlang節點通訊小測試

2021-06-26 07:05:54 字數 1099 閱讀 9663

1.目標:

開啟兩個節點使得a節點操作b節點的程序

2.步驟與**:

1)開啟兩個節點

erl -setcookie abcedef -sname test1

erl -setcookie abcedef -sname test2

2)使節點連通

net_adm:ping('test2@pc201406231106').

3)測試模組**

-module(tm).

%%-type my_struct_type() :: 13.

-compile(export_all).

-spec test(argname1::integer()) -> any().

test(v)->

io:format("g~w",[v]) .

spfun()->

receive

-> io:format("get testvalue ~w",[v]),

spfun();

other -> io:format("get othervalue ~w quit!",[other])

end.

beginsp()->

pid = spawn(?module,spfun,),

register(?module, pid),

put(cpid,pid),

pid.

getfunpid(node)->

rpc:call(node, erlang, get, [cpid]).

4) 編譯

c(tm).

5)reload

c:l(tm).

6)啟動測試程序

tm:beginsp().

7)測試傳送訊息

! .傳送

接收

3.總結:

cookie必須相同,程序註冊名字

Erlang程序間通訊和節點間通訊學習筆記

在erlang中進行程序間通訊的唯一方法就是訊息傳遞。乙個訊息通過原語 send 傳送給另乙個程序 pid messagesend是乙個會對其引數進行求值的原語。它的返回值是傳送的訊息。原語receive被用於接收訊息。它的語法如下 receive message1 when guard1 acti...

erlang節點程式設計

erlang節點內程式設計 erlang節點內程式設計的基本工具可說是人所共知了 用send和receive來實現通訊 用鏈結 link 和監視器 monitor 來構造健壯的 在單個程序失敗時也不會崩潰的應用程式。正如前文所說,鏈結 link 和監視器 monitor 是編寫具有高容錯性的erla...

erlang節點互聯

erlang節點的連通是傳遞性的,即a節點連通b節點,若b節點之前已經連通c節點,那a也會連通c 節點間的通訊其實就是tcp連線,所以能少則少,erlang有提供 connect all false 啟動引數,這樣a連通b時就不會跟著連通c 假設有三組節點,唯一 節點c 雲節點組y1,y2 yn 普...