最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Erlang分布式節(jié)點中的注冊進(jìn)程使用實例

 更新時間:2015年02月09日 09:56:56   投稿:junjie  
這篇文章主要介紹了Erlang分布式節(jié)點中的注冊進(jìn)程使用實例,本文直接給出實例代碼,需要的朋友可以參考下

上一篇文章中說到, 注冊進(jìn)程關(guān)聯(lián)的原子具有全局作用域, 這里的全局指的是當(dāng)前 Erlang 虛擬機(jī), 在分布式中, 便是當(dāng)前分布式節(jié)點. 因此, 在一個節(jié)點中注冊進(jìn)程關(guān)聯(lián)的原子, 在另一個節(jié)點中是不能直接使用, 而必須配和目標(biāo)節(jié)點使用.

復(fù)制代碼 代碼如下:

{RegName, Node} ! {messages}.

例子

先啟動一個 Server 節(jié)點

復(fù)制代碼 代碼如下:

erl -sname server

然后在 Erlang Shell 中操作

先簡單介紹幾個常用函數(shù)

復(fù)制代碼 代碼如下:

% 查看當(dāng)前節(jié)點
node().
% => 'server@Gentoo-PC'

% 查看所有已連接的節(jié)點
nodes().
% => []                                        % 此時還未連接其它節(jié)點

% 查看當(dāng)前節(jié)點是否存活
is_alive().
% => true


然后進(jìn)入正題
復(fù)制代碼 代碼如下:

% 啟動上一篇文章中最后的那個程序
test:start().
% Waiting for new message.
% => true

% 當(dāng)前節(jié)點可以使用 testp 原子
testp ! message.
% New message: message
% Waiting for new message.
% => message


然后啟動另外一個 Client 節(jié)點
復(fù)制代碼 代碼如下:

erl -sname client

在新的 Erlang Shell 中
復(fù)制代碼 代碼如下:

nodes().
% => []                                         % 此時未連接節(jié)點

% 當(dāng)前節(jié)點無法直接使用這個原子的
testp ! {}.
% ** exception error: bad argument
%      in operator  !/2
%         called as testp ! {}

% 需要配合目標(biāo)節(jié)點一起使用
{testp, 'server@Gentoo-PC'} ! {}.
% => {}                                         % 語句返回值


此時, server 節(jié)點就會接收到消息, 并打印出
復(fù)制代碼 代碼如下:

% New message: {}
% Waiting for new message.

節(jié)點間首次連接后, 兩個節(jié)點將會保持連接

在 Client 節(jié)點中

復(fù)制代碼 代碼如下:

nodes().
% => ['server@Gentoo-PC']

在 Server 節(jié)點中
復(fù)制代碼 代碼如下:

nodes().
% => ['client@Gentoo-PC']

結(jié)尾

當(dāng)然, 這只是個方法, 由于在模塊中定義了 call 函數(shù)包裹了起來, 所以可以使用遠(yuǎn)程調(diào)用, 調(diào)用 Server 節(jié)點上的 test:call 方法.

可以使用 rpc 模塊中的 call/4 方法遠(yuǎn)程調(diào)用函數(shù)

復(fù)制代碼 代碼如下:

% 在 Node 節(jié)點上執(zhí)行 apply(Module, Function, Args)
% 調(diào)用成功時返回 Result, 調(diào)用失敗時返回 {badrpc, Reason}
-spec rpc:call(Node, Module, Function, Args} -> Result | {badrpc, Reason}

在 Client 節(jié)點中
復(fù)制代碼 代碼如下:

rpc:call('server@Gentoo-PC', test, call, ['message from other node']).

相關(guān)文章

  • 一篇文章帶你從入門到精通:RabbitMQ

    一篇文章帶你從入門到精通:RabbitMQ

    RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的,所有主要的編程語言均有與代理接口通訊的客戶端庫
    2021-06-06
  • Erlang編程語言的第一印象

    Erlang編程語言的第一印象

    這篇文章主要介紹了Erlang編程語言的第一印象,本文對Erlang做了一個簡單總結(jié),需要的朋友可以參考下
    2015-03-03
  • Erlang分布式節(jié)點中的注冊進(jìn)程使用實例

    Erlang分布式節(jié)點中的注冊進(jìn)程使用實例

    這篇文章主要介紹了Erlang分布式節(jié)點中的注冊進(jìn)程使用實例,本文直接給出實例代碼,需要的朋友可以參考下
    2015-02-02
  • Erlang中的socket編程簡單例子

    Erlang中的socket編程簡單例子

    這篇文章主要介紹了Erlang中的socket編程簡單例子,本文給出了TCP服務(wù)器echo示例、Tcp 的echo客戶端示例、UDP server示例、UDP client 示例,需要的朋友可以參考下
    2015-03-03
  • Erlang中的匹配模式總結(jié)

    Erlang中的匹配模式總結(jié)

    這篇文章主要介紹了Erlang中的匹配模式總結(jié),本文講解了賦值時匹配、流程控制中的匹配、消息傳遞匹配等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Erlang中的函數(shù)與流程控制介紹

    Erlang中的函數(shù)與流程控制介紹

    這篇文章主要介紹了Erlang中的函數(shù)與流程控制介紹,本文先是講解了函數(shù)的一些知識,然后講解了case語句和if語句及算術(shù)表達(dá)式等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Erlang中3種生成隨機(jī)數(shù)的方法

    Erlang中3種生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了Erlang中3種生成隨機(jī)數(shù)的方法,它們分別是random:uniform()、erlang:now()、crypto:strong_rand_bytes(N),需要的朋友可以參考下
    2015-01-01
  • Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    這篇文章主要介紹了Erlang中執(zhí)行l(wèi)inux命令的兩種方法,本文著重講解了erlang:open_port的使用,需要的朋友可以參考下
    2015-01-01
  • Erlang實現(xiàn)的一個Web服務(wù)器代碼實例

    Erlang實現(xiàn)的一個Web服務(wù)器代碼實例

    這篇文章主要介紹了Erlang實現(xiàn)的一個Web服務(wù)器代碼實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Erlang中的并發(fā)程序簡介

    Erlang中的并發(fā)程序簡介

    這篇文章主要介紹了Erlang中的并發(fā)程序簡介,本文講解了Erlang中基本的并發(fā)函數(shù)、并發(fā)程序模板、程序在出錯時立即崩潰的優(yōu)點、為了在互聯(lián)網(wǎng)上執(zhí)行并發(fā)程序等內(nèi)容,需要的朋友可以參考下
    2015-03-03

最新評論

辛集市| 宣汉县| 甘南县| 稷山县| 西平县| 惠安县| 大余县| 秦安县| 泰安市| 冕宁县| 禄劝| 南部县| 工布江达县| 宜丰县| 珠海市| 江达县| 志丹县| 清远市| 营山县| 罗江县| 启东市| 万安县| 江西省| 尤溪县| 盐城市| 依安县| 尼木县| 泸西县| 临湘市| 岑巩县| 梨树县| 福鼎市| 常山县| 青阳县| 洪泽县| 门头沟区| 五家渠市| 友谊县| 茶陵县| 达州市| 乾安县|