आप अन्य नोड पर प्रक्रियाओं को उसी तरह भेज सकते हैं, जो आप एक ही नोड के लिए स्थानीय प्रक्रिया के साथ करेंगे। चाल निश्चित रूप से आपको प्रक्रिया आईडी होना चाहिए। लेकिन आप tuple {RegisteredName, NodeName}, आदि का उपयोग कर किसी अन्य नोड पर पंजीकृत प्रक्रिया को भी भेज सकते हैं।
register(a, self()), {a, node()} ! foo.
स्वयं को एक संदेश भेजेगा। एक ही वाक्यविन्यास नोड्स में काम करता है।
एक अधिक विस्तृत उदाहरण
पहले खोल में:
erl -sname one
Erlang R15B01 (erts-5.9.1) [source] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.9.1 (abort with ^G)
[email protected])1> ([email protected])1> register(hello_server, self()).
([email protected])2>
true
दूसरा खोल में:
erl -sname two
Erlang R15B01 (erts-5.9.1) [source] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.9.1 (abort with ^G)
[email protected])1> ([email protected])1> {hello_server, '[email protected]'} ! good_day.
good_day
([email protected])2>
और फिर पहले खोल में:
([email protected])2> flush().
Shell got good_day
ok
स्रोत
2013-06-04 09:07:04
कर सकते हैं मैं उपयोग करता हूं "!" दूरदराज के नोड को एक संदेश भेजने के लिए, अगर मेरे पास इस नोड पर "स्पॉन (नोड, मॉड्यूल, मज़ा, Args)" के कार्य द्वारा प्रक्रिया की पिड है? –
हां, दूरस्थ संदेश भेजना स्थानीय लोगों को भेजने जैसा है –
आपको केवल यह सुनिश्चित करने की आवश्यकता है कि सभी नोड एक ही कुकी का उपयोग करें। – Kaos