Это 2-процессная коммуникационная программа в Эрланге.Два процесса связи на двух компьютерах Erlang
Мне нужно запускать каждый процесс на другом компьютере.
мне нужно запустить Эрл -Name пинганем
в COMPUTER2, чье имя хоста является Linux-2.mydomain
И, мне нужно запустить
erl -name pong
в COMPUTER1, чьи имя хоста - linux-1.mydomain
Затем
На компьютере 1, я бегу:
tut17:start_pong().
На компьютере 2, я бегу:
tut17:start_ping([email protected])
Но я получил ошибку:
- ошибку исключения: плохой аргумент в арифметическом выражении в операторе -/2 названный pong @ linux - 1
Кажется, что Эрланг считал, что «-» - это минус-оператор в «linux-1».
Итак, как заставить Эрланг понять мою команду?
Любая помощь действительно оценена.
код ниже:
-module(tut17).
-export([start_ping/1, start_pong/0, ping/2, pong/0]).
ping(0, Pong_Node) ->
{pong, Pong_Node} ! finished,
io:format("ping finished~n", []);
ping(N, Pong_Node) ->
{pong, Pong_Node} ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1, Pong_Node).
pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.
start_pong() ->
register(pong, spawn(tut17, pong, [])).
start_ping(Pong_Node) ->
spawn(tut17, ping, [3, Pong_Node]).